- Populate select options based on association options.
- Assign a foreign key based on a select box value directly through mass assignment (
post[category_id]
). - Define a
belongs_to
association writer. - Build a form field that will delegate to a belongs_to association writer (
post#category_name=
) through controller mass assignment. - Define a
has_many
association writer. - Build a form field that will delegate to a has_many association writer (
owner#pet_names=
) through controller mass assignment.
In this lab, we're going to make a song library. Our data model looks like this:
Artist
- has a
name
(string) - has many
songs
- has a
Song
- has a
title
(string) - belongs to an
Artist
- belongs to a
Genre
- has a
Genre
- has a
name
(string) - has many
songs
- has a
Note
- has
content
(string) - belongs to a
Song
- has
The base models, controllers, and seed data have been provided for you. The associations have not been wired up.
- Write
app/views/songs/new.html.erb
. This form should have:- A text input box that sets the song's title.
- A text input box for the artist.
- A selection box for genre. Users should be able to pick amongst existing genres only.
- Several text input boxes to add notes to the song. These should have the IDs
song_notes_1
,song_notes_2
, and so on for the specs to pass. (You might need to search around for how to pass an array usingstrong_params
!)
There are feature tests!
View Forms And Basic Associations Rails Lab on Learn.co and start learning to code for free.