Processing ActiveRecord

Hi-

What I would like to do in the controller is select 2 rows from my DB
and manipulate those rows to be rendered in the view.

result = MyModel.find(:all, :limit => 2, :select => column) # Gives me
2 rows.
@view_stuff = result[0] - result[1] #Get error for not having method
‘-’

Do I need to write a class method to manipulate the result set? Even
if the column type is of type float?

Is there a better approach here?

Thanks!

should be
result[0].column - result[1].column
i think

That’s what I thought it would be too, then I get the following:

“undefined method `column’ for -2268.0:Float”

Any ideas?

On Jan 29, 2:23 pm, Thorsten M. <rails-mailing-l…@andreas-

pete wrote:

That’s what I thought it would be too, then I get the following:

“undefined method `column’ for -2268.0:Float”

Any ideas?

On Jan 29, 2:23 pm, Thorsten M. <rails-mailing-l…@andreas-

just checked it like that:
foo=ShipmentDivisions.find(:all, :limit => 2, :select => :amount)

where ShipmentDivisions has a col “amount”
foo[0].amount - foo[1].amount works fine

your
result = MyModel.find(:all, :limit => 2, :select => column)

uses (at least as typed here) a var column which must be a string with a
col name
this you can’t use like
result[0].column

you would have to use something like
result[0][column]

if you need variable col names here. otherwise just use
result[0].the_absolute_colname

AMAZING! That worked!!

Why do you have to do “result[0][column]” when column is a variable?

THANK YOU!!

On Jan 29, 2:49 pm, Thorsten M. <rails-mailing-l…@andreas-

Perfect, thanks again for your help with this!

On Jan 29, 3:06 pm, Thorsten M. <rails-mailing-l…@andreas-

Why do you have to do “result[0][column]” when column is a variable?

easy enough:
result[0] is an object and result[0].xxx calls a function of this object
all columns are defined as functions for ActiveRecord objects
but your column is a string, containing the column name. there is no
function column, since there is no column with that name
ActiveRecord::[] is just an alternative way to request the content of a
col in a slightly more flexible way, by handing over the name as a
string