我有以下问题:
我有一个名为Foo的类,这个类的一些实例如下:
@foo1
@foo2
@foo3
这些实例中的每一个都有一个名为:description的属性,其中包含如下文字:
@foo1.description = "Lorem"
@foo2.description = "ipsum"
@foo3.description = "dolore"
现在我想合并/合并上面的三个对象,以便我之后只有一个像这样的实例:
@foo1.description = "Lorem ipsum dolore"
有谁知道我怎么做这个合并?
感谢。
编辑更多背景:
我有一个名为Risk的类和很多实例。 Risk类的实例的属性是id,description,issue,references和target_ids,因为Risk类的实例可以具有has_many目标。
在我的风险索引视图中显示所有风险我想要一个额外的复选框列,我可以检查我想要合并的所有风险。然后有一个名为“Merge”的按钮,如果按下该按钮,则复选框中选中的所有风险应合并到第一个被检查的风险中。
答案 0 :(得分:0)
你可以这样做:
descriptions = Foo.where(:id => [@foo1, @foo2, @foo3]).map(&:description)
new_description = descriptions.join
@foo1.description = new_description
@foo1.save!
@foo2.destroy
@foo3.destroy
答案 1 :(得分:0)
@foo1.description = "Lorem"
@foo2.description = "ipsum"
@foo3.description = "dolore"
@foos = @foo1 + @foo2 + @foo3
desc_array = []
@foos.each do |foo|
desc_array << foo.description
end
@foo1.description = desc_array.join
@foo1.description.save()