我目前正在使用:
v0.12.0v4.1.6v2.1.3用例
我正在更新一个名为dollars_per_month的money类型属性,它是我用money-rails迁移助手(即add_money)创建的。
所以,在我的模型里:
monetize :dollars_per_month_cents, allow_nil: true我的当前模式有:
t.integer "dollars_per_month_cents"
t.string "dollars_per_month_currency", default: "CAD", null: false在配置/初始化器中全局设置货币:
config.default_currency = :cad问题
我希望用户能够在文本字段中输入"500美元“或"500”或"500 CAD“,并使其正确保存。当前,当指定非全局货币时,它抛出异常:
RuntimeError: Can't change readonly currency 'CAD' to 'USD' for field 'dollars_per_month'这是有道理的-我能理解为什么这是自然执行的。
但是..。我想强行改变货币而不关心这样的强制执行,因为这个领域只是为了抓住一个问题的答案。
简单的解决方案(尽管未来缺乏方便)是将其转化为纯文本。然而,我想知道是否可以用RubyMoney和/或money-rails来完成这一任务,而无需触及应用程序的其余部分。
Notes
dollars_per_month_currency并保存模型,但是dollars_per_month仍然返回一个基于CAD的Money对象。dollars_per_month_currency。欣赏任何人必须分享的任何见解或经验!
发布于 2014-10-29 13:16:52
使用选项with_model_currency
monetize :dollars_per_month_cents, allow_nil: true, with_model_currency: :dollar_per_month_currencyhttps://stackoverflow.com/questions/26000377
复制相似问题