u19*_*964 0 ruby attributes metaprogramming ruby-on-rails
在Rails中,我有一个类名User,我只想看一下:name, :address, :age
我想写一段代码,如下所示:
user = User.new
[name, address, age].zip(["Name", "Address", 10]).each do |attribute, val|
user.attribute = val
end
Run Code Online (Sandbox Code Playgroud)
事情是我不知道如何正确地做,因为user.attribute显然不是一个有效的线.换句话说,反正是有,这样user.attribute得到的评价user.name,user.address,user.age取决于环路?
谢谢
你应该使用send方法
user.send "#{attribute}=", val
Run Code Online (Sandbox Code Playgroud)
如果属性是,:name那么,上面的行相当于
user.name = val
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1103 次 |
| 最近记录: |