Включая модули и классы в рельсах - PullRequest
1 голос
/ 26 января 2012

Мне трудно включить некоторых помощников вида в файл, который находится в /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 Ответ

6 голосов
/ 26 января 2012

Думаю, вы путаете, как работают Модули .

Вам нужно смешать модуль в класс для работы методов экземпляра.

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" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...