首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用lambda或proc和rails-money

使用lambda或proc和rails-money
EN

Stack Overflow用户
提问于 2013-07-13 17:06:10
回答 1查看 243关注 0票数 6

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

如下所示:

代码语言:javascript
复制
class Event < ActiveRecord::Base
  belongs_to :edition
  monetize :price_cents, :with_currency => proc { |event| event.edition.currency }

event.edition.currency从模型的父级返回一个符号...例如:英镑

但它不起作用。默认约定为:

代码语言:javascript
复制
monetize :bonus_cents, :with_currency => :gbp

效果很好..。有什么想法吗?

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

EN

回答 1

Stack Overflow用户

发布于 2013-07-18 18:59:42

试试这个:

代码语言:javascript
复制
class Event < ActiveRecord::Base
  belongs_to :edition
  monetize :price_cents

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

我没有对它进行彻底的测试,但它似乎起作用了。

代码语言:javascript
复制
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>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17628658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档