我在我的Rails 4应用程序中使用money-rails。
我显示我没有分钱的货币化属性。我希望用户只输入全部美元/英镑金额(因此,不是100美元,而是100美元)。
在我的表格中,我问用户:
<%= par.input :participation_cost_pennies, label: false, placeholder: 'Whole numbers only', :input_html => {:style => 'width: 250px; margin-top: 20px', class: 'response-project'} %>
在我的节目中,我有:
<%= money_without_cents_and_with_symbol @project.scope.participant.participation_cost %>
我想知道如何将.00添加到用户在表单中输入的内容中,或者最好使输入的值为美元金额而不是美分金额。有谁知道怎么做?
我已经删除了我的money.rb初始化中的美分:
config.default_format = {
:no_cents_if_whole => nil,
答案 0 :(得分:0)
使用资金时,我希望在我的数据库中使用DECIMAL
代替INTEGERS
。
在迁移中,请执行以下操作:
add_column :items, :price, :decimal, :precision => 8, :scale => 2
# precision is the total amount of digits
# scale is the number of digits right of the decimal point
在Rails中,:decimal
类型返回为BigDecimal
,这非常适合进行价格计算。
如果您坚持使用整数,则必须在任何地方手动转换为BigDecimal
。
打印价格,使用:
number_to_currency(price, :unit => "$")
#=> $1,234.01
看看
http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_to_currency