Pythonとサラリーマンと

2020年6月にPythonを始めたサラリーマンのブログです。

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メソッドを追加(コントローラ)

以上
こんな感じ。よく使いそうな機能が盛りだくさん。