2012-03-15 1 views
2

У меня есть несколько методов, которые запускаются каждым запросом с помощью before_filter. Я попытался поместить эти методы в несколько мест, но в конечном итоге использовал их в файле под lib, и это был единственный способ, которым это удалось. Где подходящее место для размещения этих методов? В идеале я бы хотел, чтобы они автоматически были доступны для каждого контроллера без включения чего-либо еще.Правильное место для рельсов по всему периметру, который будет доступен для before_filter

ответ

4

Вы можете использовать методы, используемые несколькими контроллерами в ApplicationController. Если большинство запросов должно выполнить это before_filter, поместите его также в ApplicationController, и вы можете игнорировать фильтр для определенных действий с помощью skip_before_filter. Пример: here.

+0

Насколько я понимаю, контроллеры обрабатывают запрос и предоставляют данные/функции из вашей модели. Не наполнил бы какой-либо метод, не связанный с запросом в контроллере, против одной из основных концепций Rails? –

+1

@franklinstine Если вы считаете, что код не связан с обработкой запроса и может быть повторно использован в другом месте, поместите его в модуль или класс в папку lib и вызовите его из 'before_filter' в' ApplicationController'. – Baldrick

+0

Спасибо @baldrick, именно так у меня есть это сейчас, я просто не был уверен, что это лучший/самый предпочтительный вариант. –

 Смежные вопросы

  • Нет связанных вопросов^_^