noelanimanini / crud-with-validations-lab

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CRUD With Validations Lab

Introduction

Your goal in this lab is to create a thorough CRUD interface for one model, the Song.

Songs

Songs have the following attributes and limitations:

  • title, a string
    • Must not be blank
    • Cannot be repeated by the same artist in the same year
  • released, a boolean describing whether the song was ever officially released
    • Must be true or false
  • release_year, an integer
    • Optional if released is false
    • Must not be blank if released is true
    • Must be less than or equal to the current year
  • artist_name, a string
    • Must not be blank
  • genre, a string

Requirements

Use the resource generator, not the scaffold generator

X 1. Define a model with validations for Song.

X 2. Define all RESTful routes for songs.

X 3. Render the list of songs in an HTML table.

X 4. Build views that connect to each other using route helpers.

X 5. Use form_for to build forms with pre-fill and error list features. (Hint: Try using a partial to cut down on copy/pasting!)

  1. Allow deleting songs with a link, using link_to. Check out the official documentation for additional info including setting the method: to :delete.

  2. Use strong parameters in your POST/PATCH controller actions.

  3. Set the root route to the song index.

About

License:Other


Languages

Language:Ruby 83.4%Language:HTML 13.0%Language:JavaScript 1.6%Language:CSS 1.6%Language:SCSS 0.4%