Динамически получить атрибут объекта - PullRequest
11 голосов
/ 28 февраля 2012

Как мне динамически получить значение атрибута для объекта activerecord?

например, у меня есть переменная с именем attr_name.
Я хочу сделать что-то вроде этого:

person = Person.find(1)
attr_name = "address"
address = person.<function_name>(attr_name)

какой function_name можно использовать?

Ответы [ 3 ]

27 голосов
/ 28 февраля 2012

Либо используйте person.attributes[attr_name] или person.read_attribute(att_name), либо даже короче, чем это person[attr_name].

3 голосов
/ 28 февраля 2012

отправить - это метод, который вы ищете.

1 голос
/ 25 августа 2015

Если сделать это с помощью send

address = person.send("function_name" + "attr_name")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...