25
votes

I have an application.html.erb file which sets out layout for every pages in my app (header, footer etc.) like a typical Rails app.

However, I would like to have a landing page which I don't want to use this file. How should I bypass application.html.erb?

Thank you.

3

3 Answers

43
votes

Use

render :layout => false

or

render :layout => 'whatever'

in your action. If you are using a separate LandingController you simply can create a app/views/layouts/landing.html.erb which will be picked up or you can override the layout via

class LandingController < ApplicationController
  layout 'whatever'
  ...
end
6
votes

You can set a layout in your render function:

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

You can also set that option to false to not use any layout at all.

You can do something similar if you want an entire controller to use a custom layout:

class MyController < ApplicationController

    layout :homepage

    #...
end

Hope that helps!

3
votes

In the controller that renders the view, change the render to:

render :layout => false

You can read more about options to render and how to work with layouts at the Rails guide to render and layouts.