Gem
##Gemfileを用いたインストール
DeviseをGemfileに追加しBundlerを用いてインストールします。
~ vim Gemfile
# 以下の内容を追記してください
gem 'devise'
そしてBundlerでインストールするために、以下のコマンドを実行します。
~ bundle install
#Devise
##インストール
以下のコマンドを用いてDeviseのインストールを行います。
~ rails g devise:install
##認証用ユーザーモデルの作成
以下のコマンドを実行し、認証で用いるユーザーモデルの作成を行います。
# 'user'の部分は自分がauthで使用したいテーブルの名前に合わせてください
~ rails g devise user
これでマイグレーションファイルも作成されるので、ここでDBに反映させます。
~ rake db:migrate
この状態で下記URLにアクセスして、正常に新規登録画面が表示されることを確認してください。
http://localhost:3000/users/sign_up
##フラッシュメッセージの設定
フラッシュメッセージが出るようにしていきます。
~ vim app/view/layouts/application.html.erb
<% if notice %>
<p class="alert alert-notice"><%= notice %></p>
<% end %>
<% if alert %>
<p class="alert alert-error"><%= alert %></p>
<% end %>
##リダイレクト先の指定
deviseは認証に関するactionを行った後、リダイレクトが実行されます。そのパスはデフォルトでuser_root_path、なければroot_pathとなります。リダイレクトに備えてroot_pathの設定をしていきます。
~ vim config/routes.rb
# 以下の内容を追記
root 'home#index'
これにともないhome_controllerの設定も行います。
~ rails g controller home
~ vim app/controllers/home_controller.rb
class HomeController < ApplicationController
def index
end
end
~ vim app/view/home/index.html.erb
<p><%= link_to 'ユーザー情報編集', edit_user_registration_path %></p>
<p><%= link_to 'ログアウト', destroy_user_session_path, :method => :delete %></p>
これで一通り、ユーザー登録、編集、ログイン、ログアウトが実行できるようになったかと思います。
#補足
deviseでよく使用する関数を以下にまとめました。コードを書く際に参考にしてみてください。
※以下はすべて認証のモデルがuserとして書いています。実際は適宜自分の環境に合わせて変えてください。
# ログイン中のアクションの制限
authenticate_user!
# 使用例:hogeアクションはログインしていないユーザーでもアクセス可能
before_filter :authenticate_user!, only: :hoge
# ユーザーがログインしているかどうかのチェック
user_signed_in?
# ログインユーザーの情報取得
current_user
# ログインユーザーのセッション情報を取得
user_session
#参考
以下のURLを参考にさせて頂きました。不明点などがありましたら以下を見て頂ければわかるかと思います。