money-rails:不要用0初始化货币化的字段

时间:2017-05-26 13:11:19

标签: ruby-on-rails rubygems

以下面的模型为例:

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只会在初​​始化时提供所需的行为,但如果priceMoney,则Product将设置为price对象0已更新{{1}}仍为nil。

如何停止此行为?

1 个答案:

答案 0 :(得分:0)

您只需要删除null: false选项。