我正在寻找一种优雅的方法将存储在Hash中的值分配给预先存在的对象.为了清楚起见,如果我有一个对象,说obj有两个属性,比如名称和年龄,我想分配来自哈希的这些值而不做类似的事情:
obj.name = hash[:name]
obj.age = hash[:age]
Run Code Online (Sandbox Code Playgroud)
感谢您的关注.西蒙娜
rfu*_*duk 11
最好的办法可能就是简单地定义一个方法update_attributes
,它采用哈希并在类的实例方法中进行.
扩展其他人的写作以及您似乎需要的内容我认为您最好的选择是:
hash.keys.each do |key|
m = "#{key}="
obj.send( m, hash[key] ) if obj.respond_to?( m )
end
Run Code Online (Sandbox Code Playgroud)
这将占:
归档时间: |
|
查看次数: |
5742 次 |
最近记录: |