我有一個融合了一些默認值,像這樣一個@lead
模型:如果屬性是零,然後使用默認值從哈希
DEFAULTS = {
inflation: 4.224/100,
usage: 12_000,
cost: 3250
}.freeze
@lead.attributes.symbolize_keys.reverse_merge!(DEFAULTS)
這一半的作品,但它不會使用DEFAULT
利用率會@lead
用法是nil
。如何申請DEFAULT
值給@lead
只有如果@lead
的價值是nil
?
我不想存儲在遷移默認值有許多原因讓出去了。
謝謝。
你看了一下['散列#merge']塊的版本(https://ruby-doc.org/core-2.2.0/Hash.html#method-i-merge)?例如'@ lead.attributes.symbolize_keys.merge(DEFAULTS){| key,old_val,new_val | old_val.nil? ? new_val:old_val}'btw'reverse_merge!'with'!'(bang)將不會產生任何影響,因爲'attributes.symbolize_keys'創建的鏈我相信是一個副本而不是引用 – engineersmnky
這很好,謝謝! –
我會將塊寫爲'{| _,old_val,new_val | old_val || new_val}' – moveson