Как установить конкретный макет для всех контроллеров в классе или модуле. (Рельсы 3) - PullRequest
15 голосов
/ 17 мая 2011

У меня есть следующие контроллеры в классе администратора (или модуль?)

class Admin::PostsController < ApplicationController
  layout 'admin'
  # controller methods...
end

class Admin::CommentsController < ApplicationController
  layout 'admin'
  # controller methods...
end

Как определить расположение в одном месте для этих контроллеров в классе Admin? Нужно ли создавать новый файл для класса Admin и определять его там? У меня такое чувство, что что-то вроде этого (пробовал, но не работает).

class Admin < ApplicationController
 layout 'admin'
end

В настоящее время все контроллеры, относящиеся к классу admin, находятся в «app / controllers / admin /». Если мне нужно создать файл класса Admin, он должен быть внутри этой папки или в той, что выше? Или решение очень простое, и я слишком обдумываю его?

1 Ответ

29 голосов
/ 17 мая 2011

Попробуйте создать класс BaseController, например, затем расширить его для использования другими контроллерами:

class Admin::BaseController < ApplicationController
  layout 'admin'
end

Тогда вы получите:

class Admin::PostsController < Admin::BaseController
  # controller methods...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...