我有以下哈希:
row = {:id => 1, :name => "Altus Raizen", :email => "altus@blarg.com"}
Run Code Online (Sandbox Code Playgroud)
现在我有一个Person与下面的键具有相同属性的Struct row:
Person = Struct.new(:id, :name, :email)
Run Code Online (Sandbox Code Playgroud)
我想Person使用row哈希中的值动态填充对象,如下所示:
person = Person.new
person.id = row[:id]
person.name = row[:name]
person.email = row[:email]
Run Code Online (Sandbox Code Playgroud)
上面的代码有效,但必须有一种更优雅的方式,即动态填充属性.我该怎么做呢?(实际上我有9个属性,因此通过考虑将值设置为其他属性(如电话,地址等),上面的代码变得更长并且更"丑陋".
person = Person.new
row.each_pair { |key, value| person.send("#{key}=", value) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
396 次 |
| 最近记录: |