Подтвердить что ты не робот

Как использовать переменную как атрибут объекта в рельсах?

У меня есть модель PaymentDetail с атрибутом 'home_address_country', поэтому я могу использовать

    @payment_detail.home_address_country //where @payment_detail is object of that model.

Я хочу использовать что-то вроде этого: ---

country_attribute=address_type+"_address_country"  //where address type is equal to 'home'
 @payment_detail."#{country_attribute}" 

Значения атрибутов свойств хранятся в переменной. Как я могу это сделать?

EDIT

country_attribute=address_type+"_address_country"
country_list=Carmen::country_names
eval("@#{country_attribute} = #{country_list}")
4b9b3361

Ответ 1

Ссылка

Ответ 2

Рекомендуемый способ для Rails 3 - использовать словарь-подобный доступ:

attr = @payment_detail["#{address_type}_address_country"]
attr = "new value"
@payment_detail["#{address_type}_address_country"] = attr

read_attribute и write_attribute работают только для Rails 2.