我正在使用rails 4.2.5。
在rails API(v4.2.5.2)中,我看到了这个帮手:
number_to_delimited(number, options = {})
使用分隔符(例如,12,324)格式化数千个分组的数字。您可以在选项哈希中自定义格式。
http://api.rubyonrails.org/classes/ActiveSupport/NumberHelper.html#method-i-number_to_delimited
但是当我在视图中使用此帮助时,它会引发错误:
undefined method
number_to_delimited'代表#<#:0x0000000b091b30>`
其他助手,例如number_to_currency
,一切运作良好。我怎么了?
答案 0 :(得分:4)
尝试改为呼叫ActiveSupport::NumberHelper
。
ActiveSupport::NumberHelper.number_to_delimited(12345678)
=> "12,345,678"
或者你也可以这样做:
include ActiveSupport::NumberHelper
number_to_delimited(12345678)
=> "12,345,678"
更新:
我在上面的评论中看到你说你正在使用haml代码,你可以这样做:
= ActiveSupport::NumberHelper.number_to_delimited(12345678)
或
- include ActiveSupport::NumberHelper
= number_to_delimited(12345678)
答案 1 :(得分:2)
只需在ApplicationHelper中包含ActiveSupport :: NumberHelper即可。
module ApplicationHelper
include ActiveSupport::NumberHelper
end
然后,您可以直接在视图中使用所有数字助手。
<%= number_to_delimited(12345678) %>
答案 2 :(得分:1)
number_to_delimited
是ActiveSupport::NumberHelper
中的一种方法,不能直接在视图中使用。
Rails在ActionView::Helpers::NumberHelper
中提供了一些数字助手,这些助手被委托给ActiveSupport::NumberHelper
中的方法。
例如,如果要定界数字,则应改为呼叫number_with_delimiter
,后者将在number_to_delimited
中呼叫ActiveSupport::NumberHelper
。
# File actionview/lib/action_view/helpers/number_helper.rb, line 244
def number_with_delimiter(number, options = {})
delegate_number_helper_method(:number_to_delimited, number, options)
end
希望有道理。干杯。