Possible bug on find method with :select attribute and aggregate functions

Hi to everyboy… I need your help in order to know if I get wrong…

I have this migration file:

class CreateSpecifications < ActiveRecord::Migration
def self.up
create_table :specifications do |t|
t.string :tolerancia
t.integer :umbral

  t.timestamps
end

end

def self.down
drop_table :specifications
end
end

I put some data by mean of script/console
Specification.create(:umbral => 33, :tolerancia => ‘alta’)
Specification.create(:umbral => 23, :tolerancia => ‘alta’)
Specification.create(:umbral => 12, :tolerancia => ‘baja’)
Specification.create(:umbral => 33, :tolerancia => ‘baja’)

Then when I run the following statement
Specification.find(:all, :select => ‘tolerancia, sum(umbral) as
total’, :group => ‘tolerancia’)

I get the following:
[#<Specification tolerancia: “alta”>, #<Specification tolerancia:
“baja”>]

Where is my total field??? How could I get it???

Besides, whit the following statement:

Specification.find(:first, :select => ‘now() as ahora’)
=> #

Where is my field ‘ahora’?

Thanks in advanced by your help…

On 23 Nov 2008, at 19:07, Alfredo Rico M. [email protected]
wrote:

Specification.create(:umbral => 33, :tolerancia => ‘alta’)
“baja”>]

Where is my total field??? How could I get it???

The default display for activerecord objects only shows attributes
corresponding to columns on the table. It’s there - just not
displayed. Call the total method to read it ( although in this case
i’d just use the sum method instead of find)

Fred

Besides, whit the following statement:

Specification.find(:first, :select => ‘now() as ahora’)
=> #

Where is my field ‘ahora’?

Same as above

Yes!! You are right!! Thanks a lot!!

On Nov 24, 4:04 pm, Frederick C. [email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs