Обход application.html.erb в приложении Rails
У меня есть файл application.html.erb, который устанавливает макет для всех страниц моего приложения (заголовок, нижний колонтитул и т.д.), как типичное приложение Rails.
Однако, я хотел бы иметь целевую страницу, которую я не хочу использовать этот файл. Как мне обойти application.html.erb?
Спасибо.
Ответы
Ответ 1
Используйте
render :layout => false
или
render :layout => 'whatever'
в вашем действии. Если вы используете отдельный LandingController
, вы можете просто создать приложение /views/layouts/landing.html.erb, которое будет подхвачено, или вы можете переопределить макет с помощью
class LandingController < ApplicationController
layout 'whatever'
...
end
Ответ 2
Вы можете установить макет в своей функции рендеринга:
render {other arguments}, :layout => :homepage
Вы также можете установить эту опцию на false
, чтобы не использовать какой-либо макет вообще.
Вы можете сделать что-то подобное, если хотите, чтобы весь контроллер использовал пользовательский макет:
class MyController < ApplicationController
layout :homepage
#...
end
Надеюсь, что это поможет!
Ответ 3
В контроллере, который отображает представление, измените рендер на:
render :layout => false
Подробнее о параметрах рендеринга и способах работы с макетами можно узнать в Rails guide для рендеринга и макетов.