我已决定将价格存储为整数,但我对此有困难。
用户当然会以英镑和便士输入价格,我想以便士的形式存储,但是最好的方法是什么。
到目前为止,我尝试过的是before_save
在我的模型中:
def convert_price
self.price = self.price * 100
end
但这有两个问题——首先我在我的控制器中使用了一个事务(以确保在保存之前我正在做的其他事情也可以)所以它似乎乘以 100 两次!第二个问题是,例如,如果用户输入 56.85,在终端中查看它会说输入是 56,因为它会在执行任何其他操作之前将其类型转换为 Int。
我不想使用 Money gem,因为我觉得它有点矫枉过正——希望有一个好的简单的解决方案。