##初めに
####なぜこの記事を書きたかったのか
一度新しくアプリケーションを作るとき、deviseの存在は思い出せれるけど、どうやって使うのかど忘れるときがあるからメモしたい!
####環境
・Macbook Air (Retina, 13-inch,2019)
・プロセッサ 1.6GHz デュアルコアIntel Core i5
・メモリ 8GB 2133 Mhz LPDDR3
・MacOS Big Sur バージョン 11.5.2
####記事の目次
1)何ができるのか
2)前提条件
3)authenticate_user!とは?
4)authenticate_user!の使い方
5)最後に
##何ができるのか
=ログインしていないuserを感知して、強制的にログインページへ遷移させることができる
このメソッドが全部やってくれるので、自分でメソッド名を新たにつくって命令式を書かなくても自動でやってくれる!
##前提条件:ログイン/新規登録の機能
####1)Gemfileの一番下にdeviseというgemを設定
gem 'devise'
####2)ターミナルで新たに記入したgemを導入する
bundle install
####3)devise関連のディレクトリーを追加する
(ターミナル)
rails g devise:install
####4)ログイン/新規登録用のviewの作成
(ターミナル)
rails g devise:views
*ファイル名:registrationsは新規登録用
*ファイル名:sessionsはログイン用
####5)userモデル作成後、usersテーブルの作成
(モデルの作成)
rails g devise user
(デーブルの作成)
rails db:migrate
##※devise用のcontrollerはない
application_controller.rb内にコードを書くと、すべてのコントローラにも適応されるを利用してdeviseの設定はここに書く!
##authenticate_user!とは?
####ログイン/新規登録機能を使って、userがログイン状態でなければ、強制的にログインページへ遷移させるメソッド
##authenticate_user!の使い方
下記で、userがログインしていない状態でなければ、強制的にログインへ遷移させられる!
これで知らないヒトがuserの個人ページへ遷移できなくなる!
(コントローラー)
before_action :authenticate_user!
##最後に
ふと、思い返していると→ログイン/新規登録があるサイトをよく見かける!だから、authenticate_user!のメソッドが生まれたのかな?
ここまでよんでくれてありがとう!