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