如何动态获取模型对象的属性?我将User对象的属性作为字符串:
u = User.find(1)
我可以执行u.get("user_id")
答案 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)