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.
-
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.
-
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.
-
Create a new view in
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
.
-
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).
View Rails Layouts And Templates Lab on Learn.co and start learning to code for free.
View Layouts And Templates in Rails Lab on Learn.co and start learning to code for free.