Ruby on Rails Ⅳ 2章 ユーザーと投稿を結びつけよう
20170305@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
目次
migration
ユーザーと投稿を結びつけたい。ユーザーはidを持っているので、notes
テーブルにuser_id
カラムがあれば判別できるはず。
migrationとは
データベースのテーブルやカラムなどの構造を変更できる仕組み
rails g migration add_user_id_to_notes user_id:integer
を実行すると、migrationファイルが生成される。
上の例だと、user_id
カラムをnotes
テーブルに追加する、というmigrationファイルが自動生成される。
ファイル名自体は任意なので、このフォーマットに従わずに作ることも可能。
rake db:migrate
rake db:migrate
を実行すると、migrationファイルの中身をDBに反映できる。
いままで実行していたのは、rails g model
やrails g scaffolr
で自動生成されたmigrationファイルをDBに反映するためだった。
user_idを保存しよう
フォームでnoteを作成する際に、user_idも一緒に入力・送信できるようにする。
note作成時にuser_idを必須にするよう、コントロールを変更。ストロングパラメータを思い出す。バリデーションも。
ユーザーの投稿一覧を表示しよう
userのshowページに、そのuserの投稿一覧を表示する。
whereメソッド
@notes = Note.where(user_id: @user.id)
一対多
has_many
とbelongs_to
(※これ便利だけどちゃんと理解しないといけないやつだ。他のも読んで理解)
一対多もそうだし、ファイル間のデータの受け渡しがまだまだ難しい。@付け忘れたりする。
今回の勉強時間:35分 累計勉強時間:10時間29分 (10時間突破!)