gpt4 book ai didi

ruby-on-rails - ruby rails : A way to save currency into a column within a database-table

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:00 24 4
gpt4 key购买 nike

我有一个包含金额和货币列的数据库表成本。我正在寻找将货币保存到此列中的解决方案。

您有什么建议:货币列的数据类型是什么,我应该在那里保存什么值(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com