我想在将数字插入字符串之前格式化控制器中的数字.但函数number_with_delimiter()在控制器中不起作用.我需要将字符串发送到javascript插件.
我可以在视图中运行代码,但我想这不是最好的选择.
@mycarousel_itemList = @mycarousel_itemList + "{url: '" + p.photo.url(:thumb) +
"', price: '" + p.price.to_s + " €'},"
Run Code Online (Sandbox Code Playgroud)
是否有替代功能来改变p.price的格式?
wup*_*tah 21
要直接回答您的问题,请在控制器中包含以下内容(通常位于class声明下方的顶部附近):
include ActionView::Helpers::NumberHelper
Run Code Online (Sandbox Code Playgroud)
您还可以在模型中包含此模块(无论类p是什么),然后编写函数以返回格式化的价格.
然而,像这样的代码的最佳位置是帮助程序,而不是控制器.将从视图中调用帮助程序.您的控制器应尽可能短,并且根本不包括任何视图逻辑.
fot*_*kis 16
只需ActiveSupport::NumberHelper直接调用底层方法:
> ActiveSupport::NumberHelper.number_to_delimited(100000)
=> "100,000"
Run Code Online (Sandbox Code Playgroud)
这样可以避免不必要地在对象中包含所有ActionView方法.
| 归档时间: |
|
| 查看次数: |
8854 次 |
| 最近记录: |