この記事はRailsでdeviseを導入した時に詰まったとこや、学んだことを備忘録的に書き連ねてゆきます。
deviseとは
DeviseとはRailsで作成したアプリケーションへ簡単に認証機能を実装することができるgem(ライブラリ)の一つ。
https://diveintocode.jp/tips/devise
要するにログイン、ユーザー登録などに必要な機能を全て備えているライブラリの一つ。テーブルも作ってくれる、便利なgem。
devise導入手順
Gemファイルに以下を追記
gem 'devise'
gemインストール
bundle install
deviseインストール
rails g devise:install
Userモデル作成(名前は何でも良い)
rails g devise User
マイグレーション
rake db:migrate
以上をすると、dbにUserテーブルが出来る。
「http://localhost:3000/users/sign_up」にアクセスするとログイン画面が出てくる。
ビュー作成
rails generate devise:views users
以上を実行するとviews/usersが出来る。
ログイン画面はsessions/new.html.erb
コントローラ作成
rails g devise:controllers users
以上を実行するとcontrollers/usersにコントローラが出来る。
ルーティング変更
http://localhost:3000/users/sign_up
は少々冗長。
http://localhost:3000/login
などに変更したい。
そんな場合routes.rbを変更。
routes.rb
devise_scope :user do
get 'login', to: 'devise/sessions#new'
end
リダイレクト先を指定する
ログイン先や、ログアウト先のリダイレクト先を指定する。
sessions_controllerに追記。
protectedにしておいた方がよいかも。
app/controllers/sessions_controller.rb
protected
def after_sign_in_path_for(resource)
root_path
end
def after_sign_out_path_for(resource)
root_path
end