提交 2d0bc08a 编写于 作者: P Pratik Naik

Make type_condition return Arel predicate and not a string condition

上级 99dd1077
......@@ -144,7 +144,7 @@ def build_through_conditions
end
def build_sti_condition
@reflection.through_reflection.klass.send(:type_condition)
@reflection.through_reflection.klass.send(:type_condition).to_sql
end
alias_method :sql_conditions, :conditions
......
......@@ -1622,14 +1622,12 @@ def array_of_strings?(o)
o.is_a?(Array) && o.all?{|obj| obj.is_a?(String)}
end
def type_condition(table_alias = nil)
table = Arel::Table.new(table_name, :engine => active_relation_engine, :as => table_alias)
sti_column = table[inheritance_column]
def type_condition
sti_column = active_relation_table[inheritance_column]
condition = sti_column.eq(sti_name)
subclasses.each{|subclass| condition = condition.or(sti_column.eq(subclass.sti_name)) }
condition.to_sql
condition
end
# Guesses the table name, but does not decorate it with prefix and suffix information.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册