Rails Layouts And Templates Lab
Objectives
Your task is to build an online store! Okay, maybe not a whole online store, but at least some layouts and controllers for an online store. Not only will you learn how to create a layout and how to get an action to use that layout but also how to override defaults and specify layouts on the action level.
The Default Layout
Make a new controller called
StaticController
.Create a home view with an
h2
that says "Welcome to Flatiron Widgets" and a new action inStaticController
calledhome
.Create a default application layout at the correct location, and add an
h1
to it that says "Flatiron Widgets Store". This is for the main site's welcome bar.
Custom Layouts for a Controller
Create a new controller called
StoreAdminController
.We want this controller to use a new layout called
admin
. This layout should have anh1
that says "Flatiron Widgets: Admin".Create a home view layout for
StoreAdminController
with anh2
that says "Welcome Flatiron Admin".Get your newly created action to use the
admin
template.
Custom Layouts for an Action
Create a new view for
StoreAdminController
calledorders
with anh2
that says "Welcome to Flatiron Open Orders". Also add anol
with a fewli
elements containing fake orders.Now you should create a new layout called
order_administration
and add anh1
that says "Flatiron Widgets: Open Orders".At this point, the
store_admin#orders
action will use theadmin
layout you defined earlier, but we need it to use the neworder_administration
layout. The trick is we want only thestore_admin#orders
action to use theorder_administration
layout, and we want to keep theadmin
layout as the default for the other actions inStoreAdminController
.
Ignore Layouts for an Action
Create a new action in
StoreAdminController
calledinvoice
, and insert anh1
that says "Your Invoice".This action is assigned the default layout for the controller,
admin
, but we don't want it to use any layout at all (while also not affecting the layouts assigned to other actions in the controller).
Last updated