I read in the Rails 3 Way book that when using select(), you can, in
addition to adding calculated columns (i.g. using sql aggregate
functions), include additional attributes in resulting object by
passing the wild card like this:
Unit.select(:*,“sum(unit_type_id) as
total”).group(“created_at”).having([“created_at > ?”, 2.days.ago])
That should give you the new method “total” in addition to the default
attributes of the object. However, when I do it, I get this:
ArgumentError: wrong number of arguments (2 for 1)
It appears the select method not accepting multiple parameters?
John M. wrote in post #1060601:
I read in the Rails 3 Way book that when using select(), you can, in
addition to adding calculated columns (i.g. using sql aggregate
functions), include additional attributes in resulting object by
passing the wild card like this:
Unit.select(:*,“sum(unit_type_id) as
total”).group(“created_at”).having([“created_at > ?”, 2.days.ago])
That should give you the new method “total” in addition to the default
attributes of the object. However, when I do it, I get this:
ArgumentError: wrong number of arguments (2 for 1)
As far as I can tell from the docs Model.select takes one argument in
all forms:
http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-select
So that error makes sense as far as I can tell.
Robert W. wrote in post #1060823:
Unit.select(:*,“sum(unit_type_id) as
total”).group(“created_at”).having([“created_at > ?”, 2.days.ago])
Maybe you meant this:
Unit.select([ :*, “sum(unit_type_id) as total”
]).group(“created_at”).having([“created_at > ?”, 2.days.ago])
The one argument can be an array, which would be the common case.