Sinatra Basic Forms Lab
Last updated
Last updated
Your local pet adoption store has asked you to build their new website. First and foremost, the store needs a form for their staff to add puppies that are available for adoption. Good thing you love puppies and coding!
Implement a POST request to the controller to display data from a user in the view
Implement both POST and GET requests
Connect a controller action with both a view and a model
The focus of this lab is to build a way for a user to go to a home page, follow a link to a form where they can enter a puppy's information, and, upon submission, view the puppy's information.
Build out a puppy class in models/puppy.rb
. Since we are not using ActiveRecord in this lab, you will write a bare Ruby model (like you did in MOD1). Puppies should have name
, breed
, and age
attributes. You will need to be able to pass these three attributes to initialization, as well as readers or accessors for the attributes.
In app.rb
build out a GET request to load a home page. The home page should go to the main route /
.
The home page will also need a new view index.erb
. This page should welcome you to the Puppy Adoption Site. Add this view to the controller action.
Now, we need a form for a user to list a new puppy that is available for adoption. You can review this form in views/create_puppy.erb
. Remember, you'll need to set up another controller action for a user to be able to view this form in the browser. The "submit" button of a form can be an <input>
element with a type
of "submit"
(or a <button>
element with a type
of "submit
) — a plain old <button>
won't do it. If you want to change the text in the button, check out these docs:
Now we need to make sure the form is being submitted properly. You'll need to have a third controller action that takes the input from the user and renders a third view (views/display_puppy.erb
) which displays the info for the puppy that was just created. Create an instance of a puppy to hold the data about the puppy you just created.
Add a link on the home page to the new puppy form.
Clone the repo Here https://github.com/learn-co-curriculum/sinatra-basic-forms-lab