mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Yield only one argument instead of splatting.
Add Changelog entry. Closes #4003
This commit is contained in:
parent
9cc2bf69ce
commit
f9cb645dfc
2 changed files with 9 additions and 2 deletions
|
@ -1,5 +1,12 @@
|
|||
## Rails 4.0.0 (unreleased) ##
|
||||
|
||||
* Allow blocks for `count` with `ActiveRecord::Relation`, to work similar as
|
||||
`Array#count`:
|
||||
|
||||
Person.where("age > 26").count { |person| gender == 'female' }
|
||||
|
||||
*Chris Finne & Carlos Antonio da Silva*
|
||||
|
||||
* Added support to `CollectionAssociation#delete` for passing `fixnum`
|
||||
or `string` values as record ids. This finds the records responding
|
||||
to the `id` and executes delete on them.
|
||||
|
|
|
@ -21,7 +21,7 @@ module ActiveRecord
|
|||
# # => queries people where "age > 26" then count the loaded results filtering by gender
|
||||
def count(column_name = nil, options = {})
|
||||
if block_given?
|
||||
self.to_a.count { |*block_args| yield(*block_args) }
|
||||
self.to_a.count { |item| yield item }
|
||||
else
|
||||
column_name, options = nil, column_name if column_name.is_a?(Hash)
|
||||
calculate(:count, column_name, options)
|
||||
|
@ -65,7 +65,7 @@ module ActiveRecord
|
|||
# # queries people where "age > 100" then perform a sum calculation with the block returns
|
||||
def sum(*args)
|
||||
if block_given?
|
||||
self.to_a.sum(*args) { |*block_args| yield(*block_args) }
|
||||
self.to_a.sum(*args) { |item| yield item }
|
||||
else
|
||||
calculate(:sum, *args)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue