diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2010-01-16 04:17:23 +0530 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2010-01-16 04:21:18 +0530 |
commit | 2d0bc08a7e1a0ecee577674deba2c0a17fe665e4 (patch) | |
tree | 965b9ecb3f497a33e1291b83e0b9a369a738df19 | |
parent | 99dd107760191b834d0a97e89c5ae991c088a4a8 (diff) | |
download | rails-2d0bc08a7e1a0ecee577674deba2c0a17fe665e4.tar.gz rails-2d0bc08a7e1a0ecee577674deba2c0a17fe665e4.tar.bz2 rails-2d0bc08a7e1a0ecee577674deba2c0a17fe665e4.zip |
Make type_condition return Arel predicate and not a string condition
-rw-r--r-- | activerecord/lib/active_record/associations/through_association_scope.rb | 2 | ||||
-rwxr-xr-x | activerecord/lib/active_record/base.rb | 8 |
2 files changed, 4 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/associations/through_association_scope.rb b/activerecord/lib/active_record/associations/through_association_scope.rb index 1001199daa..6f0f698f1e 100644 --- a/activerecord/lib/active_record/associations/through_association_scope.rb +++ b/activerecord/lib/active_record/associations/through_association_scope.rb @@ -144,7 +144,7 @@ module ActiveRecord 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 diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 38a012202d..4a53a7bd22 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -1622,14 +1622,12 @@ module ActiveRecord #:nodoc: 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. |