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

ed1*_*d1t 10 ruby-on-rails models ruby-on-rails-3

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

u = User.find(1)
Run Code Online (Sandbox Code Playgroud)

我能做点什么吗 u.get("user_id")

Adi*_*ghi 25

您可以尝试使用ActiveRecord模型实例,如哈希.

u = User.find(1)
name = u[:name]
field = "first_name"
first_name = u[field]
Run Code Online (Sandbox Code Playgroud)


twm*_*lls 12

另一种方法:

attr = :first_name
@user.read_attribute attr  
Run Code Online (Sandbox Code Playgroud)


Sco*_*ott 5

试试这个

user = User.find(1)
Run Code Online (Sandbox Code Playgroud)

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

user.send('field_name')
Run Code Online (Sandbox Code Playgroud)