开发者

Rails: Why is the "number_with_delimiter" method not recognized inside my model?

I have a simple validation:

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

On this code, I have received the following error:

undefined method `number_with_delimiter' for #<Class:0x2665a58>

I tried to add:

inclu开发者_StackOverflow社区de ActionView::Helpers::NumberHelper

but it didn't help.

What am I missing?


The true problem here is that you're including this module into the class, rather than extended the class with it.

The differences is an include will make the methods available on the instance, where as the extend will make them where you're trying to use them: on the class.

For instance method use

include ActionView::Helpers::NumberHelper

For class method use

extend ActionView::Helpers::NumberHelper


Instead of extending ActionView module. You can use methods from ActiveSupport instead

For example:

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


You should use extend:

Usage: extend ActionView::Helpers::NumberHelper

It is good for me


You might be missing the dependency... is the NumberHelper class accessible to your application?

Check the official Rails docs


good answer, use :

ActiveSupport::NumberHelper::number_to_delimited(number, options={})

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜