使用money-rails gem https://github.com/RubyMoney/money-rails
我以前一直在使用这种with_model_currency
方法:
delegate :currency, :to => :edition, :prefix => true
monetize :base_fee_pennies, :allow_nil => true, :with_model_currency => :edition_currency
monetize :qm_fee_pennies, :allow_nil => true, :with_model_currency => :edition_currency
monetize :total_fee_pennies, :allow_nil => true, :with_model_currency => :edition_currency
但我试图找到一种更简洁的方法来做到这一点,而不是使用with_model_currency
3 次,所以我开始直接覆盖该currency
方法:
def currency # previously currency_for_price?
unless new_record?
Money::Currency.find(edition_currency)
end
end
但是发现我在新记录上有问题... edition_id 是使用 build 方法设置的,但这由于某种原因不起作用,我收到没有设置版本的错误,所以我使用了new_record?
似乎可以修复的方法它。
我的问题是这是否是我应该这样做的方式,或者是否有更直接的方法(除了制作专栏)。
谢谢,