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

时间:2011-05-13 18:54:27

标签: ruby-on-rails ruby-on-rails-3 models

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

u = User.find(1)

我可以执行u.get("user_id")

之类的操作

5 个答案:

答案 0 :(得分:24)

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

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

答案 1 :(得分:12)

又一种方法:

attr = :first_name
@user.read_attribute attr  

答案 2 :(得分:5)

试试这个

user = User.find(1)

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

user.send('field_name')

答案 3 :(得分:1)

试试这个

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

答案 4 :(得分:0)

不确定我是否完全理解您的问题。尝试类似:

User.find(1).name

如果您的意思是您只想从DB特定属性中获取,则可以执行以下操作:

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