在rails 3中动态获取模型属性

如何动态地从模型对象获取属性? 我将User对象的属性作为字符串:

u = User.find(1) 

我可以做像u.get("user_id")这样的事情u.get("user_id")

您可以尝试像散列一样使用ActiveRecord模型实例。

 u = User.find(1) name = u[:name] field = "first_name" first_name = u[field] 

另一种方法:

 attr = :first_name @user.read_attribute attr 

试试这个

 user = User.find(1) 

然后这样的事情应该做你需要的

 user.send('field_name') 

不确定我是否完全理解你的问题。 尝试以下方法:

 User.find(1).name 

如果你的意思是你只想从DB特定属性中获取,你可以这样做:

 User.find(1,:select => :name) 

试试这个

 u = User.find(1) attr = "first_name" u.send(attr)