aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2010-01-16 04:17:23 +0530
committerPratik Naik <pratiknaik@gmail.com>2010-01-16 04:21:18 +0530
commit2d0bc08a7e1a0ecee577674deba2c0a17fe665e4 (patch)
tree965b9ecb3f497a33e1291b83e0b9a369a738df19 /activerecord
parent99dd107760191b834d0a97e89c5ae991c088a4a8 (diff)
downloadrails-2d0bc08a7e1a0ecee577674deba2c0a17fe665e4.tar.gz
rails-2d0bc08a7e1a0ecee577674deba2c0a17fe665e4.tar.bz2
rails-2d0bc08a7e1a0ecee577674deba2c0a17fe665e4.zip
Make type_condition return Arel predicate and not a string condition
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/associations/through_association_scope.rb2
-rwxr-xr-xactiverecord/lib/active_record/base.rb8
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.