2012-03-05 11 views
21

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

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

спасибо.

ответ

39

Использование

render :layout => false 

или

render :layout => 'whatever' 

в своем действии. Если вы используете отдельный LandingController вы можете просто создать приложение/просмотров/макеты/landing.html.erb который будет подобран или вы можете изменить расположение с помощью

class LandingController < ApplicationController 
    layout 'whatever' 
    ... 
end 
+1

отлично работает -> рельсы 4 –

5

Вы можете установить макет в вашей визуализации функции:

render {other arguments}, :layout => :homepage 

Вы также можете установить эту опцию в false не использовать любой макет вообще.

Вы можете сделать что-то подобное, если вы хотите, чтобы весь контроллер использовать пользовательский макет:

class MyController < ApplicationController 

    layout :homepage 

    #... 
end 

Надежда, что помогает!

3

В контроллере, которая делает вид, изменить воздавать:

render :layout => false 

Вы можете узнать больше о возможностях, чтобы сделать и как работать с макетами на Rails guide to render and layouts.