我有一个模型将@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
?
我不想出于多种原因在迁移中存储默认设置,以便将其删除。
感谢。
答案 0 :(得分:0)
DEFAULTS = {
inflation: 4.224 / 100,
usage: 12_000,
cost: 3250
}.freeze
if !@lead
@lead.attributes.symbolize_keys.reverse_merge!(DEFAULTS)
end
当@lead为nil时,!
运算符将生成@lead eq fals,否则使其为eq true。