Skip to Main Content
Learning Rails
book

Learning Rails

by Simon St. Laurent, Edd Dumbill
November 2008
Beginner content levelBeginner
448 pages
12h 25m
English
O'Reilly Media, Inc.
Content preview from Learning Rails

Layouts

Back in Example 2-1, you saw that the view Rails originally generated only included an h1 element and a p element—Rails didn’t provide a full HTML document, with a DOCTYPE, html element, or head and body elements. Part of the reason for that is that Rails expects its views to work as part of a system, a system in which another document, a layout, provides all of that supporting infrastructure. Rails didn’t automatically generate a layout, but creating one is easy.

Note

When Rails generates more complete scaffolding code (described in Chapter 5), it does produce a layout file. It just doesn’t normally do it when generating a controller and view.

Splitting View from Layout

The final version of the Hello view, still using the simple controller from Example 2-4, looks like Example 3-3.

Example 3-3. The Hello view, containing markup that can move to a layout

<html>
<head><title><%=h @message %> </title>
<%= stylesheet_link_tag 'hello', :media => "all", :type => "text/css",
:href => "/stylesheets/"  %>
    </head>
<body>
<h1><%=h @message %></h1>
<p>This is a greeting from app/views/hello/index.html.erb</p>

<% for i in 1..@count %>
<p><%=h @bonus %></p>
<% end %>

</body>
</html>

To make this into a layout, break the view down into two files. The first, listed in Example 3-4, contains the logic specific to presenting that page, while the second, Example 3-5, contains the broader framing for the document. (Both are included in ch03/hello005.)

Example 3-4. The Hello view, reduced to its local ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Learning Rails 5

Learning Rails 5

J. Mark Locklear, Eric J Gruber, Barnabas Bulpett
Mastering Ruby Closures

Mastering Ruby Closures

Benjamin Tan Wei Hao
Ruby on Rails® Bible

Ruby on Rails® Bible

Timothy Fisher

Publisher Resources

ISBN: 9780596154943Supplemental ContentErrata