Ruby一次设置多个值

时间:2011-02-26 12:45:23

标签: ruby

更聪明的方法是什么:

@entity.description = @resource.description
@entity.aliases = @resource.aliases
@entity.image = @resource.thumbnail
@entity.freebase = @resource.url
@entity.same_as = @resource.webpages

感谢。

2 个答案:

答案 0 :(得分:3)

如果你有两个以上在两个类之间共享的字段,你可以考虑将它们打包成一个类,然后简单地分配(或克隆)它。然后你的代码看起来像:

  @entity.info = @resource.info

当然,这要求您完全控制这些类。

答案 1 :(得分:2)

你可以这样写:

{:description => :description=, :aliases => :aliases=, :image => :thumbnail=,
 :freebase => :url=, :same_as => :webpages=}.each do |from, to|
  @entity.send(to, @resource.send(from))
end

但我怀疑这会增加你的代码的可读性。您可能最好离开它,因为您现在拥有代码,因为编写它的时间很短,因为我会对代码进行模糊处理并使其更难阅读。