Reputation: 77778
I'm new to Sinatra and I can't figure out where to put my application layout.
I've seen the inline method that uses
# app code
__END__
@@layout
%html
= yield
But I'd like the layout to be in it's own .haml
file.
What should the layout file be named? What directory should it be placed in?
Upvotes: 20
Views: 14936
Reputation: 303251
To make every view default to be wrapped in a layout, create a file in views/layout.haml
and your calls to haml :myview
will automatically be wrapped in this layout.
If you want a particular view rendering not to use the layout, use:
get '/' do
# Other pages will use layout.haml, but not the main page
haml :home, :layout => false
end
If you want to use a layout other than the common layout, create another file (for example views/admin_layout.haml
) and then pass this as an option:
get '/admin/create' do
haml :create, :layout => :admin_layout
end
Upvotes: 27
Reputation: 30248
If you haven't already, create a folder where your sinatra script lives called...
views/
and put your layout in there, call your layout
layout.haml
or whatever extension (e.g. .erubis
) you'd like to use.
Upvotes: 20