Rails:为什么在我的模型中无法识别“number_with_delimiter”方法?

我有一个简单的validation:

class Product  1000000, :message => "must be less than #{number_with_delimiter(1000000)}" ... end 

在此代码中,我收到以下错误:

 undefined method `number_with_delimiter' for # 

我试着添加:

 include ActionView::Helpers::NumberHelper 

但它没有帮助。

我错过了什么?

这里真正的问题是你将这个模块包含在类中,而不是用它扩展类。

不同之处是include会使方法在实例上可用,而extend将使它们成为你尝试使用它们的地方:在类上。

而不是扩展ActionView模块。 您可以使用ActiveSupport方法

例如:

ActiveSupport::NumberHelper::number_to_currency(10000.1234,{precision: 2,unit: ''})

你应该使用extend:

用法: extend ActionView::Helpers::NumberHelper

这对我有好处

您可能缺少依赖项…是您的应用程序可以访问的NumberHelper类吗?

查看官方Rails文档