I have an object (happens to be an ActiveRecord Model), but this is
not a Rails question.
params = { :contract_id => contract_payment[‘contract_id’], :amount =>
contract_payment[‘amount’] }
params = contract_payment.to_hash # This is what I want to do…
I want to “automagically” convert the contract_payment object to a
hash.
I would really appreciate any help.
Thanks,
Jason
On Feb 1, 2007, at 10:45 PM, Jason V. wrote:
I would really appreciate any help.
Thanks,
Jason
Since you are using ActiveRecord you can already get the attributes
hash:
contract_payment.attributes
Cheers-
– Ezra Z.
– Lead Rails Evangelist
– [email protected]
– Engine Y., Serious Rails Hosting
– (866) 518-YARD (9273)
I don’t know how the internals of contract_payment’s class is set up,
but you could do this in some cases:
daniel@daniel-desktop:~$ irb
class Car
def initialize(color, make, model_year, owner)
@color, @make, @model_year, @owner = color, make, model_year,
owner
end
end
=> nil
myCar = Car.new(“green”, “Ford”, 2007, “Me!”)
=> #<Car:0xb7bd566c @color=“green”, @owner=“Me!”, @model_year=2007,
@make=“Ford”>
myCar.instance_variables
=> ["@color", “@owner”, “@model_year”, “@make”]
properties = Hash.new
=> {}
myCar.instance_variables.each {|x| properties[x[1…-1]] =
myCar.instance_variable_get(x) }
=> ["@color", “@owner”, “@model_year”, “@make”]
properties
=> {“model_year”=>2007, “make”=>“Ford”, “color”=>“green”,
“owner”=>“Me!”}