4

使用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_currency3 次,所以我开始直接覆盖该currency方法:

def currency # previously currency_for_price?
  unless new_record?
    Money::Currency.find(edition_currency)
  end
end

但是发现我在新记录上有问题... edition_id 是使用 build 方法设置的,但这由于某种原因不起作用,我收到没有设置版本的错误,所以我使用了new_record?似乎可以修复的方法它。

我的问题是这是否是我应该这样做的方式,或者是否有更直接的方法(除了制作专栏)。

谢谢,

4

0 回答 0