Rails: Как использовать макет по умолчанию, если отсутствует файл макета - PullRequest
0 голосов
/ 23 декабря 2010

Как использовать макет по умолчанию, если отсутствует файл макета?

У меня есть папка layouts/themes/, которая содержит темы, но я хочу загрузить тему по умолчанию, если файл не существует.

Я попытался установить rescue_from ActionView:MissingTemplate, with => ..., но не могу установить макет втаким образом.

Итак, лучшее решение, которое я нашел, это: layout: layout_by_resource

def layout_by_resource
  layout_name = "themes/" + current_theme
  File.exists?(Rails.root + "app/views/layouts/" + (layout_name + ".html.erb")) ? layout_name : "application"
end

Есть ли лучшее решение для этой цели?

1 Ответ

1 голос
/ 23 декабря 2010

В Rails макеты хранятся в app/views/layouts и имя макета по умолчанию - application.html.erb, и оно используется, если нет макета, имя которого соответствует имени контроллера. Например, контроллер фотографий будет иметь макет photos.html.erb.

Для более подробной информации смотрите здесь (раздел 2.2.13)

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