Index, Show, New, Create Lab
Objectives
Build a RESTful
index
actionBuild a RESTful
show
actionBuild a RESTful
new
actionBuild a RESTful
create
actionLink pages using route helpers
Use route helpers in a
redirect_to
Build a new form with a
form_tag
Instructions
This will be a pretty extensive lab that will combine a number of the concepts that we have reviewed, including:
Drawing multiple route types
Integrating route helper methods
Building out a form and wiring it up to the
create
actionLinking pages together
In this lab, the application you will be starting out with will be completely blank. There are no models, views, controllers, et cetera. It has a number of RSpec and Capybara tests that will all need to pass to complete the lab. The tests can be found in the spec
directory, in the models
, features
, and controllers
sub-directories. Feel free to walk through the specs to see what behavior the application should have when you're done.
Like many production applications, we've included the config/secrets.yml
file in the .gitignore
. This means that you are going to have to create your own config/secrets.yml
file for the application to run. Don't worry- we've given you a template. Just rename config/secrets-template.yml
to config/secrets.yml
, and you should be able to get the application to run.
The application you will be building is a Coupon app. Below is a high-level overview of the features you'll be building out:
You will need to create a
coupons
table withcoupon_code
andstore
columns, which should both be of thestring
data type.Your
index
page should show all of the coupons in the database.The coupon codes on the
index
page should link to their corresponding couponshow
page. You should use thelink_to
method and route helper methods instead of hard-coding an HTML<a>
tag.Your
show
page should render the specific coupon passed to the route. E.g.,coupons/4
should show the coupon with an ID of 4.The
new.html.erb
view template should render a form that uses theform_tag
method.The form should be wired up to the
create
action in the controller and, when submitted, should create a new record in thecoupons
table with the parameters passed through the form.The controller should use the
redirect_to
helper method to redirect the user to theshow
page template for the newly-created coupon.
Resources
Last updated