0

我有一张发票,可以使用一些 jQuery 魔术添加项目。

控制器:

def new    
  @invoice = Invoice.new
  @invoice.with_blank_items(current_user) 
  @title = "New invoice"
end

模型:

def with_blank_items(user, n = 1)
  n.times do
    items.build(:price => user.preference.hourly_rate)
  end
  self
end

看法:

<%= f.text_field number_with_precision(:price, :strip_insignificant_zeros => true) %>

现在的问题是,一个新添加的项目的价格总是以XX.X的格式显示,即有一位小数,不管它是否为零。

我不喜欢这样,我希望将 50 的价格显示为50而不是50.0

一旦发票被保存到数据库中,不必要的零就会被删除,这是完美的。

如何在新添加的项目上也去掉无关紧要的零?

4

2 回答 2

1

您可以尝试在分配之前以正确的方式格式化值:

items.build(:price => '%g' % user.preference.hourly_rate)
于 2012-10-02T10:43:45.343 回答
0

如果我理解您的问题,我相信您的问题可以通过 JavaScript 函数(删除小数位)来解决。

尝试类似:

function removeDecimal(val){
    return val.toFixed(0);
}

这些是我的测试用例:

removeDecimal(123.45) -> 123
removeDecimal(123.4)  -> 123
removeDecimal(123)    -> 123
于 2012-10-02T10:51:06.150 回答