クラス名の指定
カラム名
カラムの型
この中身が違う場合は、2行目以降が同じになるように書きなおしてください。
1行目は違うくても良いです。
add_column :books, :user_id, :integer
」の部分は、先ほどのクラス名を見て、Rails が勝手に書いてくれているコードです。add_column :books, :user_id, :integer
」だけを書き足してください。params[:book][:user_id]
の値を整数にしたいので、params[:book][:user_id].to_i
になります。※単数形
※複数形
id | name |
---|---|
1 | あ |
2 | い |
id | a_id | b_id |
---|---|---|
1 | 1 | 2 |
2 | 2 | 1 |
id | name |
---|---|
1 | か |
2 | き |
Aテーブル
Bテーブル
中間テーブル
中間テーブルは、それぞれのデータの結びつきを管理するテーブル
@user.books
」みたいに書くと、@userに代入されているユーザーに、紐づいている book データが一気に取得できます。テストユーザーのshowページ
bbbのshowページ
それぞれに紐づけた(user_idを登録した)
本だけが表示される
ココを消す!
ココを消す!
Aさんの編集ページ
Aさんの編集ページ
Bさんの編集ページ
Aさん
こっちは見れる
こっちは見れない
<p>パスワード:<%= @user.password_digest %></p>
」の部分を削除すれば良いですね。ログインしている時
ログインしていない時
フラッシュメッセージがあるか?を判定
ある場合だけ表示させる
フラッシュメッセージの見た目を整えるための指定
notice の方
alert の方
ログイン中にnewページにアクセスした時(alertの場合)
ログインした時(noticeの場合)
ログインしていないまま「 ~/books/new 」にアクセスした場合の表示
bookコントローラー
applicationファイル
book の indexファイル
bookコントローラー
book の showファイル
※追加する場所は、destroyの下(一番下)にしましょう。
create系のアクセス制限
edit系のアクセス制限
(ユーザーデータも必要なため、@user~ の部分も必要です)
※editの場合は、からっぽでOKですね。
create系のアクセス制限
edit系のアクセス制限
before_actioin