Подтвердить что ты не робот

Обход application.html.erb в приложении Rails

У меня есть файл application.html.erb, который устанавливает макет для всех страниц моего приложения (заголовок, нижний колонтитул и т.д.), как типичное приложение Rails.

Однако, я хотел бы иметь целевую страницу, которую я не хочу использовать этот файл. Как мне обойти application.html.erb?

Спасибо.

4b9b3361

Ответ 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 для рендеринга и макетов.