1
0
Fork 0
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:
Carlos Antonio da Silva 2012-05-24 20:50:44 -03:00
parent 9cc2bf69ce
commit f9cb645dfc
2 changed files with 9 additions and 2 deletions

View file

@ -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.

View file

@ -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