I\'ve got a query that does some math and returns a calculated custom select field with the result set. I cannot figure out how to access that in the activerecord object tha
You can access it as
object["percentage_used"]
You neither need nor want attr_accessor
for that. attr_accessor
creates an instance variable, an accessor method for getting the value of that instance variable, and a mutator method for changing its value. When you say this:
select('gateways.*, (num_transactions_today/ SUM(num_transactions_today)) AS percentage_used ...
ActiveRecord will automatically add a percentage_used
method to the returned objects. But the percentage_used
method for accessing that value will be added by method_missing
. Since you've said attr_accessor :percentage_used
, method_missing
will never be called and you can't get at the percentage_used
value from the query in the usual way.
If you drop the attr_accessor :percentage_used
, then you'll be able to call percentage_used
on objects returned by that select
and you'll find the values you're looking for. However, AR won't be able to convert the value to a native Ruby number though so you'll have to to_f
the returned string yourself.