以下面的模型为例:
class Product < ApplicationRecord
monetize :price_cents, numericality: { greater_than_or_equal_to: 0 }
…
}
使用此架构
create_table "products", id: :serial, force: :cascade do |t|
t.integer "price_cents", null: false
…
end
当我创建一个新的Product
,其值为price
而不是值为nil时,我得到一个Money
对象,其值为0.我的用例不受欢迎,因为我' d而是明确设置空值而不是隐式设置。
在default:nil
中设置config.amount_column
只会在初始化时提供所需的行为,但如果price
为Money
,则Product
将设置为price
对象0已更新{{1}}仍为nil。
如何停止此行为?
答案 0 :(得分:0)
您只需要删除null: false
选项。