我需要在我的 Rails 应用程序中使用百分比。在任何 View 中,包括用户输入时,格式都需要是百位格式,100.000
。用于计算时,需要用百分位表示,1.00000
。
我的迁移(我正在将列添加到现有表中)包含以下行:
add_column :worker, :cash_split, :decimal, :precision => 6, :scale => 5
所以,截至目前,我以百分之一 (1.00000
) 格式存储它。我选择以这种格式存储它的基础是,我认为当我需要进行乘法运算时,这将意味着更清晰的业务逻辑(即没有 worker.cash_split/100.0.to_d
代码徘徊)。
我唯一的其他想法可能是滥用 composed_of 方法。我可以将数据以数百 (100.000
) 格式存储为 cash_split,然后制作一个属性访问器 cash_split_percentage
以其对应的 1.0000 格式返回 cash_split
.
最佳答案
您的第一个想法是正确的……不要想太多。
您绝对应该以百分之一的格式在数据库中存储百分比数字。并在所有 Ruby 计算中使用该格式。
百分比数字是显示 惯例。例如,数字 0.45 显示为 45%。因此,使用 View 助手将百分比数字从其内部格式(十进制数)转换为您选择的显示格式——一个包含 % 符号的字符串。
关于mysql - 在 Rails + MySQL 中存储百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8203268/