Вычеркнуть application_helper - PullRequest
0 голосов
/ 18 июля 2010

В моем последнем приложении на Rails я решил выводить только частичные из вспомогательных методов.

Например, в application_helper.rb:

def render_header
     render :partial => "partials/header"
end

Я делаю это, чтобы сделать мой код немного более сухим на случай, если я переименую партиал или мне нужно добавить дополнительную логику для управления тем, какой партил отображается.

Недостатком этого является то, что он быстро раздувает application_helper.rb, который уже довольно быстро раздувается без этого.

Мне интересно, каков самый чистый способ разбить application_helper. Я подумал, что мне следует создать библиотеку application_helpers в lib / и включить разные модули для каждого типа помощника, который я хочу, например частичный_helper.rb.

Однако я не смог заставить это работать. Я поместил файл в lib / application_helpers /partal_helper.rb и вызвал модуль «ApplicationHelpers :: PartialHelper». Я думал, что это будет загружено Rails автоматически, и что в моих представлениях я мог сделать "PartialHelper.render_header", но я получаю ошибку, что этот метод не определен в PartialHelper.

Другая идея состояла в том, чтобы просто включить / требовать помощника в application_helper.rb и вызывать его как обычно в моих представлениях, но это также не сработало.

Есть идеи / решения?

Спасибо, Zach

1 Ответ

4 голосов
/ 18 июля 2010

Вы можете поместить любой файл <whatever>_helper.rb в app/helpers, и Rails его заберет. Вы могли бы иметь partials_helper.rb, например. Вы не ограничены помощником приложения или помощниками, генерируемыми контроллерами.

Пример partials_helper.rb:

module PartialsHelper
  def render_header
    ...
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...