我在我的应用上设置了商店,在结帐流程的一个阶段,它必须将运费添加到小计以获得总数(应该很简单)。但是,当运费是一位数(例如($ 2.00))时,它会正确添加:
$ 32小计+ $ 6运费= $ 38总计
但是,当运费是两位数时,它会像这样添加:
$ 32小计+ $ 23运费= $ 34总计
从我能说的一切来看,它一定是地方价值观的一部分,但我无法弄清楚它是什么,让我相信那里有一些特殊的Ruby我正在做的事情错。
在我的ERB视图中,以下是表单的外观:
<% shipping_choices = [] %>
<% @usps_rates.each do |rate| %>
<% choice = [] %>
<% choice << [rate[1], rate[0]] %> <!-- value ( $, desc ) -->
<% choice << number_to_currency(rate[1]/100, precision: 2).to_s + " - " + rate[0].to_s %> <!-- description -->
<% shipping_choices << choice %>
<% end %>
<%= simple_form_for @order, url: charges_update_order_path(:shipping), method: :post do |f| %>
<div class="row">
<div class="form-inputs text-left">
<div class="form-group">
<%= f.collection_radio_buttons :shipping, shipping_choices, :first, :last, item_wrapper_class: :block_radio_button_collection %>
</div>
</div> <!-- form inputs -->
</div> <!-- choices row -->
<div class="row">
<%= f.button :submit, "Continue to Billing", class: "btn btn-manly" %>
</div>
<% end %>
这是保存信息的order
模型:
def update_order_from_shipping_page(shipping_pair)
self.shipping = shipping_pair[0]
self.shipping_choice = shipping_pair[1]
new_total = self.subtotal + self.shipping
self.update_attributes(total: new_total, shipping_choice: self.shipping_choice)
end
任何人都可以看到出错的地方吗?
答案 0 :(得分:0)
原来这一行:
number_to_currency(rate[1]/100, precision: 2).to_s
围绕它的括号如下:
(number_to_currency(rate[1]/100, precision: 2)).to_s
出于某种原因,这就是伎俩。