作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个包含金额和货币列的数据库表成本。我正在寻找将货币保存到此列中的解决方案。
您有什么建议:货币列的数据类型是什么,我应该在那里保存什么值(iso 代码、货币符号……)?或者也许像在 java 中一样,ruby 中已经有一个数据类型 Currency?
最佳答案
这里是所有 Rails 4(ActiveRecord 迁移)数据类型:
:二进制
: bool 值
:日期
:日期时间
:十进制
: float
:整数
:primary_key
:引用
:字符串
:文本
:时间
:时间戳
来源:Rails 4: List of available datatypes
如您所见,没有数据类型货币。我建议您为金额创建一个小数列,为货币创建一个整数。
为什么是整数?好吧,因为您可以像这样在模型中为该列设置一个枚举:
enum currency: [:dollar]
这将创建一个与枚举同名的方法,假设您有一个成本变量:
cost.dollar?
这将根据值返回 true 或 false。
此外,您还可以轻松地创建一些案例,以您喜欢的货币进行所有更改:
case cost.currency
when Cost.currencies[:dollar]
# Do something
end
始终将此列与 Cost.currencies[:symbol_of_currency] 而不是数字进行比较(枚举就像 C 一样工作,0 将是第一个元素),这将允许您更改枚举中元素的顺序或添加无需更改应用功能的新功能。
此外,这允许您像这样在数据库中创建行:
Cost.create(currency: :dollar, amount: 30.0, ...)
关于ruby-on-rails - ruby rails : A way to save currency into a column within a database-table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34694205/
我是一名优秀的程序员,十分优秀!