初始化对象时,money-rails
gem是否需要price
和currency
的特定顺序?例如,看看以下内容:
Object.new(currency: 'JPY', price: 25)
=> #<Object id: nil, price_cents: 25, currency: "JPY">
如果我们先指定price
,我们会得到价格不正确的值(2500):
Object.new(price: 25, currency: 'JPY')
=> #<Object id: nil, price_cents: 2500, currency: "JPY">
Object
包含以下内容:monetize :price_cents
。
答案 0 :(得分:1)
看来这个订单对某些货币很重要(包括日元,因为它没有美分)。这可能不是最好的解决方案,但如果有人被卡住,这就是我所做的。
我在self.monetize
中的money-rails
方法中添加了以下内容,以覆盖使用它的类的初始化方法:
define_method "initialize" do |opts = {}|
opts = opts.deep_symbolize_keys
opts = {currency: opts[:currency]}.merge(opts)
super(opts)
end
这样它将首先发送货币。