- Build a RESTful
index
action - Build a RESTful
show
action - Build a RESTful
new
action - Build a RESTful
create
action - Link pages using route helpers
- Use route helpers in a
redirect_to
- Build a new form with a
form_tag
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
action -
Linking 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.
Note: 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 using the following format:coupon_code | store_name
-
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.