提交 e8cf45dc 编写于 作者: R Ryuta Kamizono

Don't use arel factory methods for creating join nodes

Directly `klass.new` is clear enough than factory methods.
上级 ab0e39c2
......@@ -52,7 +52,7 @@ def self.get_bind_values(owner, chain)
attr_reader :value_transformation
def join(table, constraint)
table.create_join(table, table.create_on(constraint), Arel::Nodes::LeadingJoin)
Arel::Nodes::LeadingJoin.new(table, Arel::Nodes::On.new(constraint))
end
def last_chain_scope(scope, reflection, owner)
......
......@@ -50,7 +50,7 @@ def join_constraints(foreign_table, foreign_klass, join_type, alias_tracker, &bl
end
end
joins << table.create_join(table, table.create_on(nodes), join_type)
joins << join_type.new(table, Arel::Nodes::On.new(nodes))
if others && !others.empty?
joins.concat arel.join_sources
......@@ -79,7 +79,7 @@ def strict_loading?
private
def append_constraints(join, constraints)
if join.is_a?(Arel::Nodes::StringJoin)
join_string = table.create_and(constraints.unshift(join.left))
join_string = Arel::Nodes::And.new(constraints.unshift join.left)
join.left = Arel.sql(base_klass.connection.visitor.compile(join_string))
else
right = join.right
......
......@@ -1252,7 +1252,7 @@ def build_join_buckets
end
joins.each_with_index do |join, i|
joins[i] = table.create_string_join(Arel.sql(join.strip)) if join.is_a?(String)
joins[i] = Arel::Nodes::StringJoin.new(Arel.sql(join.strip)) if join.is_a?(String)
end
while joins.first.is_a?(Arel::Nodes::Join)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册