如何动态获取activerecord对象的属性值?
例如,我有一个名为attr_name
的变量
我想做这样的事情:
person = Person.find(1)
attr_name = "address"
address = person.<function_name>(attr_name)
可以使用function_name
吗?
答案 0 :(得分:27)
使用person.attributes[attr_name]
或person.read_attribute(att_name)
,或者更短,然后使用person[attr_name]
。
答案 1 :(得分:3)
send是您正在寻找的方法。
答案 2 :(得分:1)
如果使用send
address = person.send("function_name" + "attr_name")