6

モデルの親によって設定された通貨を使用して、モデルの通貨を動的に設定できるようにしたいと考えています。

そのようです:

class Event < ActiveRecord::Base
  belongs_to :edition
  monetize :price_cents, :with_currency => proc { |event| event.edition.currency }

event.edition.currency は、モデルの親からシンボルを返します...例: :gbp

しかし、うまくいきません。デフォルトの規則は次のとおりです。

monetize :bonus_cents, :with_currency => :gbp

どちらがうまくいきますか...何かアイデアはありますか?

https://github.com/RubyMoney/money-rails

4

1 に答える 1

3

これを試して:

class Event < ActiveRecord::Base
  belongs_to :edition
  monetize :price_cents

  def currency_for_price
    Money::Currency.find(edition.currency)
  end
end

私はそれを徹底的にテストしませんでしたが、うまくいくようです。

2.0.0-p195 :012 > Event.new(
                      edition: Edition.new(currency: :gbp),
                      price: 123
                  ).price
 => #<Money fractional:12300 currency:GBP>
2.0.0-p195 :013 > Event.new(
                      edition: Edition.new(currency: :usd),
                      price: 456
                  ).price
 => #<Money fractional:45600 currency:USD>
于 2013-07-18T10:59:41.937 に答える