【问题标题】:using a lambda or proc and rails-money使用 lambda 或 proc 和 rails-money
【发布时间】:2013-07-11 19:22:44
【问题描述】:

我希望能够使用模型父级设置的货币动态设置模型上的货币。

像这样:

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

【问题讨论】:

  • 我遇到了同样的问题。你找到解决办法了吗?

标签: ruby-on-rails lambda ruby-on-rails-4 ruby-2.0 proc


【解决方案1】:

试试这个:

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>

【讨论】:

  • 保存前似乎可以工作,但保存后记录仍然设置为默认货币。 ;-(
猜你喜欢
  • 2011-06-29
  • 2013-01-19
  • 1970-01-01
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多