diff options
author | Sean Griffin <sean@thoughtbot.com> | 2015-06-19 15:35:35 -0600 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2015-06-19 15:35:35 -0600 |
commit | b644964b2b555798fc4b94d384b98438db863b3f (patch) | |
tree | af3a39838508d3cbce032b20b58889a62c607a05 /activerecord/lib/active_record/relation/finder_methods.rb | |
parent | 7d14bd3ff553d6aba11a50b43773bc21ae20f31e (diff) | |
download | rails-b644964b2b555798fc4b94d384b98438db863b3f.tar.gz rails-b644964b2b555798fc4b94d384b98438db863b3f.tar.bz2 rails-b644964b2b555798fc4b94d384b98438db863b3f.zip |
Include `Enumerable` in `ActiveRecord::Relation`
After discussing, we've decided it makes more sense to include it. We're
already forwarding every conflicting method to `to_a`, and there's no
conflation of concerns. `Enumerable` has no mutating methods, and it
just allows us to simplify the code. No existing methods will have a
change in behavior. Un-overridden Enumerable methods will simply
delegate to `each`.
[Sean Griffin & bogdan]
Diffstat (limited to 'activerecord/lib/active_record/relation/finder_methods.rb')
-rw-r--r-- | activerecord/lib/active_record/relation/finder_methods.rb | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index 6020aa238f..9fef55adea 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -62,11 +62,8 @@ module ActiveRecord # Person.where(name: 'Spartacus', rating: 4).pluck(:field1, :field2) # # returns an Array of the required fields. def find(*args) - if block_given? - to_a.find(*args) { |*block_args| yield(*block_args) } - else - find_with_ids(*args) - end + return super if block_given? + find_with_ids(*args) end # Finds the first record matching the specified conditions. There |