Rails Tutorial 第10章を噛み砕く
第10章で学ぶこと
登録されたユーザの更新
- editアクションを追加:コントローラ
- 編集ページの作成:ビュー
- updateアクションを追加:コントローラ
- userモデルにvalidationの追加:モデル
ユーザに許可する操作の限定方法(認可)
- before actionの追加(logged_in_user):コントローラ
→edit/updateアクションはログインしていないと実行させない - before actionの追加(correct_user):コントローラ →edit/updateを別のユーザに対して実行できないようにする
- current_user?メソッドの追加:ヘルパー
フレンドリーフォワーディング
- store_locationメソッドの追加(ヘルパー)
→urlをsession変数に保持 - redirect_back_orメソッドの追加(ヘルパー)
- logged_in_userに追記(コントローラ)
→store_locationメソッドに追記 - createアクションに追記
→redirect_back_orメソッドの追記(コントローラ)
ユーザの一覧表示
- before action(logged_in_user)にindexアクションの追加(コントローラ)
- indexアクションの追加(コントローラ)
- usersページの追加(ビュー)
- _header.htmlに追記(ビュー)
サンプルユーザの自動作成ツール
- gem fileにfaker gemを追加
- bundle install
- seeds.rbに追記(db/seeds.rb)
- rails db:migrate:reset, rails db:seed
→dbをリセットして、seedsファイルの中身を投入する
ページネーション
- gem fileにwill_paginate gemとbootstrap-will_paginate gemを追加
- bundle install
- indexページに<%= will_paginate %>の追記(ビュー)
- indexアクションの修正(コントローラ)
→paginateをきかせる
管理ユーザ属性の追加
- userモデルにadminをbooleanで追加(モデル)
- adminのmigrateファイルに追記(db/migrate/[timestamp]_add_admin_to_users.rb)
→デフォルトをfalseに - rails db:migrate
- seedsファイルに追記(db/seeds.rb)
→最初にユーザだけadminをtrueに変更 - rails db:reset, rails db:seed
ユーザの削除
- _user.html.erbにdeleteリンクの追記(ビュー)
→adminユーザにだけ表示するようにする - destroyアクションの追加(コントローラ)
- before actionにadmin_userメソッドを追加(コントローラ)
以上
こんな感じ。よく使いそうな機能が盛りだくさん。