作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我目前正在使用:
v0.12.0
v4.1.6
v2.1.3
用例
我正在更新一个名为 dollars_per_month
的货币类型属性,这是我使用 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/initializers 中全局设置:
config.default_currency = :cad
问题
我希望用户能够在文本字段中输入“500 USD”或“500”或“500 CAD”,并正确保存。目前,当指定非全局货币时,它会抛出异常:
RuntimeError: Can't change readonly currency 'CAD' to 'USD' for field 'dollars_per_month'
这是有道理的 - 我可以理解为什么这是自然强制执行的。
但是..我想强行更改货币而不关心此类强制执行,因为该字段仅用于获取问题的答案。
简单的解决方案(尽管将来不方便)是将其转换为纯文本。但是,我想知道是否可以在不触及应用程序其余部分的情况下使用 RubyMoney 和/或 money-rails 执行此操作。
注意事项
我已经尝试更改 dollars_per_month_currency
并保存模型,但是,dollars_per_month
仍然返回基于 CAD 的货币对象。
我研究了货币栏中的实例货币 readme .虽然我相信我可以完成这项工作,但我觉得这太过分了,因为它需要额外的货币字段……当我只想更改 dollars_per_month_currency
时。
感谢任何人分享的任何见解或经验!
最佳答案
使用选项with_model_currency:
monetize :dollars_per_month_cents, allow_nil: true, with_model_currency: :dollar_per_month_currency
关于ruby-on-rails - 使用货币 rails : How to manually set an attribute's currency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26000377/
我是一名优秀的程序员,十分优秀!