Ruby on Rails:如何在动态添加的项目上删除无关紧要的零?

时间:2012-10-02 09:46:29

标签: ruby-on-rails ruby ruby-on-rails-3 formatting

我有发票,可以使用某些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

将发票保存到数据库后,不必要的零被删除,这是完美的。

如何在新添加的项目上删除无效的零?

2 个答案:

答案 0 :(得分:1)

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

items.build(:price => '%g' % user.preference.hourly_rate)

答案 1 :(得分:0)

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

尝试类似:

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

这些是我的测试用例:

removeDecimal(123.45) -> 123
removeDecimal(123.4)  -> 123
removeDecimal(123)    -> 123