我正在运行Rails 5.假设我有两个对象(相同类型)。如何合并这些对象,如果一个包含空字段而另一个包含空字段,则合并对象将具有非空值?如果两个对象都具有属性的非零值,则可以选择任意一个。也就是说,让我们说对象是
Object A
attrA : nil
attrB : ABCD
attrC : nil
attrD : EEE
Object B
attrA : 1234
attrB : nil
attrC : 999
attrD : FFF
如何编写合并对象的内容,以便合并对象为
Object C
attrA : 1234
attrB : ABCD
attrC : 999
attrD : EEE
答案 0 :(得分:0)
这样的事情:
Object.new(@objectA.attributes.merge(@objectB.attributes) {|_, one, two| one || two})
PS。我建议从模型中删除id
字段。