在rails中包含模块和类

时间:2012-01-25 22:54:45

标签: ruby-on-rails ruby

我很难在/lib的文件中包含一些视图助手,比如我有这个:

module TwitterPost
  include ActionView::Helpers::NumberHelper

  def update
    number_with_delimiter(1234567)
  end
end

我明白了:

NoMethodError: undefined method `number_with_delimiter' for TwitterPost:Module

但是在我的控制台中,我只能include ActionView::Helpers::NumberHelper,然后我就可以number_with_delimiter(1234567),而且效果很好。

这是为什么?我需要将ActionView::Helpers::NumberHelper包括在一堆不同的模型中,但我没有运气让它发挥作用。

1 个答案:

答案 0 :(得分:6)

我认为你可能会混淆Modules的工作方式。

您需要将模块混合到一个类中,以使实例方法起作用。

module TwitterPost
  include ActionView::Helpers::NumberHelper

  def update
    number_with_delimiter(1234567)
  end
end

class Foo
  include TwitterPost
end

foo = Foo.new
foo.update
   => "1,234,567"