Rails:为什么我的模型中没有识别"number_with_delimiter"方法?

Mis*_*hko 8 ruby-on-rails include number-with-delimiter

我有一个简单的验证:

class Product < ActiveRecord::Base
  # include ActionView::Helpers::NumberHelper
  ...
  validates_numericality_of :price, :less_than => 1000000, 
                            :message => "must be less than #{number_with_delimiter(1000000)}"                       
  ...
end
Run Code Online (Sandbox Code Playgroud)

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

undefined method `number_with_delimiter' for #<Class:0x2665a58>
Run Code Online (Sandbox Code Playgroud)

我试着添加:

include ActionView::Helpers::NumberHelper
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.

我错过了什么?

Rya*_*igg 13

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

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


Le *_*Duy 5

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

例如:

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