Rails Money gem - 阻止用户输入美分/便士/子单元

时间:2015-06-07 05:10:37

标签: ruby-on-rails money-rails

我在我的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,

1 个答案:

答案 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

https://stackoverflow.com/a/1019972/1380867