diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2016-10-22 00:59:48 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-22 00:59:48 -0300 |
commit | 8013ff682ff1c1049a45005e1ec4c865deef3ca4 (patch) | |
tree | d81f7eb252bf96cf8b7e0ef166431dd8bef9d6ab /activerecord/lib | |
parent | 7bbd3e68ed137af2adf33e8ad06aaa8c1b7d7069 (diff) | |
parent | 56bfaf7f03882f738bb65fd232b4c67541afc4f5 (diff) | |
download | rails-8013ff682ff1c1049a45005e1ec4c865deef3ca4.tar.gz rails-8013ff682ff1c1049a45005e1ec4c865deef3ca4.tar.bz2 rails-8013ff682ff1c1049a45005e1ec4c865deef3ca4.zip |
Merge pull request #26416 from prathamesh-sonpatki/fix-select-example
Fix regression caused due to removal of select method from CollectionAssociation
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/associations/collection_proxy.rb | 6 | ||||
-rw-r--r-- | activerecord/lib/active_record/relation/query_methods.rb | 11 |
2 files changed, 10 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/associations/collection_proxy.rb b/activerecord/lib/active_record/associations/collection_proxy.rb index dda240585e..0800639c24 100644 --- a/activerecord/lib/active_record/associations/collection_proxy.rb +++ b/activerecord/lib/active_record/associations/collection_proxy.rb @@ -106,12 +106,6 @@ module ActiveRecord # # #<Pet id: 2, name: "Spook", person_id: 1>, # # #<Pet id: 3, name: "Choo-Choo", person_id: 1> # # ] - # - # person.pets.select(:name) { |pet| pet.name =~ /oo/ } - # # => [ - # # #<Pet id: 2, name: "Spook">, - # # #<Pet id: 3, name: "Choo-Choo"> - # # ] # Finds an object in the collection responding to the +id+. Uses the same # rules as ActiveRecord::Base.find. Returns ActiveRecord::RecordNotFound diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index 9fbbe32e7f..c6d0902e0d 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -242,7 +242,16 @@ module ActiveRecord # Model.select(:field).first.other_field # # => ActiveModel::MissingAttributeError: missing attribute: other_field def select(*fields) - return super if block_given? + if block_given? + if fields.any? + ActiveSupport::Deprecation.warn(<<-WARNING.squish) + When select is called with a block, it ignores other arguments. This behavior is now deprecated and will result in an ArgumentError in Rails 5.1. You can safely remove the arguments to resolve the deprecation warning because they do not have any effect on the output of the call to the select method with a block. + WARNING + end + + return super() + end + raise ArgumentError, "Call this with at least one field" if fields.empty? spawn._select!(*fields) end |