动态获取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")