diff options
author | Jon Leighton <j@jonathanleighton.com> | 2012-08-01 23:14:29 +0100 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2012-08-01 23:19:52 +0100 |
commit | 0e1cafcbc4d67854faf35e489571bc30f5e2ac14 (patch) | |
tree | 0722f7017ef190289c92361ab9d086793a4f95de /activerecord/test | |
parent | 26d3e325cb85884504564b8af07dd083fc47d2a8 (diff) | |
download | rails-0e1cafcbc4d67854faf35e489571bc30f5e2ac14.tar.gz rails-0e1cafcbc4d67854faf35e489571bc30f5e2ac14.tar.bz2 rails-0e1cafcbc4d67854faf35e489571bc30f5e2ac14.zip |
Add CollectionProxy#scope
This can be used to get a Relation from an association.
Previously we had a #scoped method, but we're deprecating that for
AR::Base, so it doesn't make sense to have it here.
This was requested by DHH, to facilitate code like this:
Project.scope.order('created_at DESC').page(current_page).tagged_with(@tag).limit(5).scoping do
@topics = @project.topics.scope
@todolists = @project.todolists.scope
@attachments = @project.attachments.scope
@documents = @project.documents.scope
end
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/associations_test.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations_test.rb b/activerecord/test/cases/associations_test.rb index b7c2bcad00..c0f1945cec 100644 --- a/activerecord/test/cases/associations_test.rb +++ b/activerecord/test/cases/associations_test.rb @@ -218,6 +218,13 @@ class AssociationProxyTest < ActiveRecord::TestCase def test_scoped_allows_conditions assert developers(:david).projects.merge!(where: 'foo').where_values.include?('foo') end + + test "getting a scope from an association" do + david = developers(:david) + + assert david.projects.scope.is_a?(ActiveRecord::Relation) + assert_equal david.projects, david.projects.scope + end end class OverridingAssociationsTest < ActiveRecord::TestCase |