LoginSignup
0
0

More than 5 years have passed since last update.

Rails チュートリアル 第10章 学習内容のメモ

Last updated at Posted at 2019-05-06

第10章ユーザーの更新・表示・削除

10.1 ユーザーを更新する

  • ユーザー名やメールアドレスを編集するときに、毎回パスワードを入力しなくて良い仕様にする。
  • パスワードがnilでも更新できるように、userモデルのバリデーションを追加する必要がある。

validates :password, presence: true, length: { minimum: 6 }, allow_nil: true

  • allow_nil: trueの追加したとしても、has_secure_passwordによって、新規ユーザ登録時に存在性の検証が行われる(もともとhas_secure_passwordとpresence: trueという存在性を検証する2つのバリデーションが存在していた)

10.2 認可

  • 認証=サイトのユーザーを識別すること
  • 認可=ユーザーが実行可能な操作を管理すること
  • 第8章で認証の機能は構築したが、認可の機能は未実装
    ⇨どのユーザでもあらゆるアクションにアクセスできる。URLを直接編集し、別のユーザの設定変更が可能となっている
  • ユーザーにログインを要求し、かつ自分以外のユーザー情報を変更できないように制御する
  • 具体的には、before_action(何らかの処理が実行される直前に特定のメソッドを実行する)に以下のlogged_in_userメソッドを追加する。
app/controllers/users_controller.rb
    # ログイン済みユーザーかどうか確認
    def logged_in_user
      unless logged_in?
        flash[:danger] = "Please log in."
        redirect_to login_url
      end
    end
end
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0