サマリ
- ユーザーの更新・表示・削除を行えるようにする
- 認可モデル (Authorization Model)
- 認証 (authentication) :サイトのユーザーを識別すること
- 認可 (authorization) :そのユーザーが実行可能な操作を管理すること
- beforeフィルター (before_action)
- フレンドリーフォワーディング
- seeds.rbを使ったデータ作成
- ページネーション
- Strong Parameters
- 認可モデル (Authorization Model)
ポイント
- Active Recordのnew_record?を使うと、既存レコードか新規レコードかを判定できる
- モデル内で
has_secure_password
を設定した項目は更新時にnilだった場合、更新されない - モデルは
reload
メソッドでDBの最新データを再読み込みできる e.g.@user.reload
-
request.original_url
でリクエスト先が取得できる -
redirect
の後に書かれている処理も実行される- 明示的にreturn文やメソッド内の最終行が呼び出されない限り、リダイレクトは発生しない
e.g.
def redirect_back_or(default)
redirect_to(session[:forwarding_url] || default)
session.delete(:forwarding_url)
end
- Faker gemを使うとダミーの名前を作成できる
e.g.
name = Faker::Name.name
-
rails db:migrate:reset
でDBデータがリセットできる- サーバーが起動しているとエラーになることがあるらしい
- will_pagenate gemを使うとページネーションを作成できる。具体的には以下が利用できるようになる。
- ビューに
<%= will_paginate %>
タグを埋め込むとページリンクを作成してくれる -
paginate
メソッドを使うと指定したページに合わせてoffset-limitしてデータを取得してくれる- e.g.
User.paginate(page: 1)
- e.g.
-
params[:page]
にページ番号を設定してくれる
- ビューに
-
render
メソッドは以下の動きをする- ファイル名 => パーシャルを探す
-
user
などのモデルから生成したオブジェクト =>_user.html.erb
を探す -
@users
などのモデルから生成したオブジェクトのリスト => 自動でコレクションを生成してパーシャルを呼び出す
-
rails generate migration add_xxx_to_yyy column:type
で生成したmigrationファイル内の追加カラムはdefault値はnil
になる。 - default値を変えたい場合は
, default: false
のように指定する。 - boolean型のカラムを追加した場合はカラム名?型の真偽値判定メソッドが使用できるようになる e.g.
user.admin?
-
toggle!(シンボル)
でboolean値を反転させられる。e.g.user.toggle!(:admin)
-
assert_no_difference {数値} {ブロック}
でブロック内の処理を実行しても数値が変化しないことをテストできる -
assert_difference {数値}, {変化値} {ブロック}
でブロック内の処理を実行したときに数値が変化値だけ変化することをテストできる -
heroku pg:reset DATABASE
でherokuのDBデータをリセットできる
感想
- 7章でのユーザー作成の後、8~9章にかけてのログイン周りのパートが(重要な部分ではあるものの)セキュリティに関する内容などを含みテンポが悪くあまり楽しい内容ではなかったので、10章は純粋にRailsでのコードの書き方に戻ってきた感じがして楽しめた。