aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-11-21 07:32:44 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-11-21 07:32:44 +0000
commit440f2890af5462402d1a77daaf1751a66742b974 (patch)
treef75574e57ea544ba68e9282a680367a16ec6e4ba /activerecord/lib/active_record/associations
parent41fb4904e22859178c3002c2acff342073540a64 (diff)
downloadrails-440f2890af5462402d1a77daaf1751a66742b974.tar.gz
rails-440f2890af5462402d1a77daaf1751a66742b974.tar.bz2
rails-440f2890af5462402d1a77daaf1751a66742b974.zip
Dynamic finders on association collections respect association :limit. Closes #10227 [Jack Danger Canty]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8178 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/associations')
-rw-r--r--activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb6
-rw-r--r--activerecord/lib/active_record/associations/has_many_association.rb2
-rw-r--r--activerecord/lib/active_record/associations/has_many_through_association.rb3
3 files changed, 8 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
index 0a03efa5e4..3d10721af6 100644
--- a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
+++ b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
@@ -133,7 +133,11 @@ module ActiveRecord
end
def construct_scope
- { :find => { :conditions => @finder_sql, :joins => @join_sql, :readonly => false, :order => @reflection.options[:order] } }
+ { :find => { :conditions => @finder_sql,
+ :joins => @join_sql,
+ :readonly => false,
+ :order => @reflection.options[:order],
+ :limit => @reflection.options[:limit] } }
end
# Join tables with additional columns on top of the two foreign keys must be considered ambiguous unless a select
diff --git a/activerecord/lib/active_record/associations/has_many_association.rb b/activerecord/lib/active_record/associations/has_many_association.rb
index 972745ee31..ead447baa0 100644
--- a/activerecord/lib/active_record/associations/has_many_association.rb
+++ b/activerecord/lib/active_record/associations/has_many_association.rb
@@ -167,7 +167,7 @@ module ActiveRecord
def construct_scope
create_scoping = {}
set_belongs_to_association_for(create_scoping)
- { :find => { :conditions => @finder_sql, :readonly => false, :order => @reflection.options[:order] }, :create => create_scoping }
+ { :find => { :conditions => @finder_sql, :readonly => false, :order => @reflection.options[:order], :limit => @reflection.options[:limit] }, :create => create_scoping }
end
end
end
diff --git a/activerecord/lib/active_record/associations/has_many_through_association.rb b/activerecord/lib/active_record/associations/has_many_through_association.rb
index a9cacb09c8..2d06e90416 100644
--- a/activerecord/lib/active_record/associations/has_many_through_association.rb
+++ b/activerecord/lib/active_record/associations/has_many_through_association.rb
@@ -236,7 +236,8 @@ module ActiveRecord
:conditions => construct_conditions,
:joins => construct_joins,
:select => construct_select,
- :order => @reflection.options[:order] } }
+ :order => @reflection.options[:order],
+ :limit => @reflection.options[:limit] } }
end
def construct_sql