簡體   English   中英

在Rails中,如何合並兩個對象?

[英]In Rails, how do I merge two objects?

我正在運行Rails5。假設我有兩個(相同類型的)對象。 我如何合並這些對象,以便如果一個對象包含空字段,而另一個對象不包含空字段,則合並的對象將具有非空值? 如果兩個對象的屬性值都不為nil,則可以選擇任意一個。 也就是說,假設對象是

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

像這樣:

Object.new(@objectA.attributes.merge(@objectB.attributes) {|_, one, two| one || two})

PS。 我建議從模型中刪除id字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM