diff options
author | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-09-07 11:35:01 +0530 |
---|---|---|
committer | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-10-22 09:04:47 +0530 |
commit | 56bfaf7f03882f738bb65fd232b4c67541afc4f5 (patch) | |
tree | d81f7eb252bf96cf8b7e0ef166431dd8bef9d6ab /activerecord/test/cases | |
parent | 7bbd3e68ed137af2adf33e8ad06aaa8c1b7d7069 (diff) | |
download | rails-56bfaf7f03882f738bb65fd232b4c67541afc4f5.tar.gz rails-56bfaf7f03882f738bb65fd232b4c67541afc4f5.tar.bz2 rails-56bfaf7f03882f738bb65fd232b4c67541afc4f5.zip |
Fix regression caused due to removal of select method from CollectionAssociation
- CollectionAssociation#select was removed in
https://github.com/rails/rails/pull/25989 in favor of
QueryMethods#select but it caused a regression when passing arguments
to select and a block.
- This used to work earlier in Rails 4.2 and Rails 5. See gist
https://gist.github.com/prathamesh-sonpatki/a7df922273473a77dfbc742a4be4b618.
- This commit restores the behavior of Rails 4.2 and Rails 5.0.0 to
allow passing arguments and block at the same time but also deprecates
it.
- Because, these arguments do not have any effect on the output of
select when select is used with a block.
- Updated documentation to remove the example passing arguments and
block at the same time to `CollectionProxy#select`.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/associations/has_many_associations_test.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb index 0ce67f971b..c1e04714fb 100644 --- a/activerecord/test/cases/associations/has_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_many_associations_test.rb @@ -788,6 +788,13 @@ class HasManyAssociationsTest < ActiveRecord::TestCase assert_equal [1], posts(:welcome).comments.select { |c| c.id == 1 }.map(&:id) end + def test_select_with_block_and_specific_attributes + assert_deprecated do + comments = posts(:welcome).comments.select(:id, :body) { |c| c.id == 1 } + assert_equal [1], comments.map(&:id) + end + end + def test_select_without_foreign_key assert_equal companies(:first_firm).accounts.first.credit_limit, companies(:first_firm).accounts.select(:credit_limit).first.credit_limit end |