10000hの技術メモ

この先生きのこるための勉強内容&時間記録

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 modelrails g scaffolrで自動生成されたmigrationファイルをDBに反映するためだった。

user_idを保存しよう

フォームでnoteを作成する際に、user_idも一緒に入力・送信できるようにする。

note作成時にuser_idを必須にするよう、コントロールを変更。ストロングパラメータを思い出す。バリデーションも。

ユーザーの投稿一覧を表示しよう

userのshowページに、そのuserの投稿一覧を表示する。

whereメソッド

@notes = Note.where(user_id: @user.id)

一対多

has_manybelongs_to

(※これ便利だけどちゃんと理解しないといけないやつだ。他のも読んで理解)

一対多もそうだし、ファイル間のデータの受け渡しがまだまだ難しい。@付け忘れたりする。

今回の勉強時間:35分 累計勉強時間:10時間29分 (10時間突破!)