将 Rails 中的字段从小数转换为整数的最佳方法
Best way to convert a field in Rails from decimals to integer in cents
我在 Rails 中有一个产品模型,金额在数据库中存储为以美分为单位的整数。
该字段的示例:
- 允许创建产品的管理员输入人性化的小数(例如 10.00 而不是 1000)的最佳方法是什么?
- 我是否应该在使用 Javascript 提交表单之前在客户端执行此操作?
- 我是否应该将字段更改为文本字段而不是整数,然后使用 before_save 回调进行转换?
似乎 Money gem 对此可能有些矫枉过正。
当然这是一个普遍的问题。人们解决这个问题的常用方法是什么?
正如想法
用钱gem
class Product < ApplicationRecord
monetize :price_cents
end
= f.input :price
或者使用 monkeypatching
class Product < ApplicationRecord
def price
self[:price] / 100.0
end
def price=(value)
super(value * 100)
end
end
我觉得gem比较方便
我在 Rails 中有一个产品模型,金额在数据库中存储为以美分为单位的整数。
该字段的示例:
- 允许创建产品的管理员输入人性化的小数(例如 10.00 而不是 1000)的最佳方法是什么?
- 我是否应该在使用 Javascript 提交表单之前在客户端执行此操作?
- 我是否应该将字段更改为文本字段而不是整数,然后使用 before_save 回调进行转换?
似乎 Money gem 对此可能有些矫枉过正。 当然这是一个普遍的问题。人们解决这个问题的常用方法是什么?
正如想法
用钱gem
class Product < ApplicationRecord
monetize :price_cents
end
= f.input :price
或者使用 monkeypatching
class Product < ApplicationRecord
def price
self[:price] / 100.0
end
def price=(value)
super(value * 100)
end
end
我觉得gem比较方便