deviseのインストール

Gemfileに以下を追加

続いてbundle installを実行

インストールできたか確認

インストール出来ました。続いてRailsで使用できるように設定します。

Railsでの設定

まずは以下のコマンドで必要なファイルを生成します

途中の出力にあるように、以下作業を手動でやる必要があります

config/environments/development.rb の編集

config/environments/development.rbに以下を追加(本番環境の場合は、production.rbに実際のホスト名を入れる)

ルートパスの設定

config/routes.rbへ以下のとおりルートパスを設定する

ログインエラー時の表示設定

ログイン失敗時のエラー表示のため、app/views/layouts/application.html.erbへ以下を追加します

rails3.1を使用している場合の設定

rails3.1を使用している場合はconfig/application.rbへ以下のとおり追加します。

認証用モデルとビューを生成する

rails generate コマンドでモデルを作成します

MODEL名は認証に使用するモデルです。userを認証のモデルにする場合は以下のようにします

続いて、Devise が使用する標準のビューを生成します。

最後に、マイグレーションを実行して設定完了です。マイグレーションの実行前に、以下で説明しているモジュール使用の有無によって、ファイルの内容を変更する必要が出てきます。

例えば、Confirmableモジュールを使用する場合は、t.confirmableのコメントを外します

マイグレーションを実行します

deviseを使用してみる

deviseのモジュールについて

deviseは以下の12のモジュールから構成されています。

  • Database Authenticatable
  • Token Authenticatable
  • Omniauthable
  • Confirmable
  • Recoverable
  • Registerable
  • Rememberable
  • Trackable
  • Timeoutable
  • Validatable
  • Lockable
  • Encryptable

詳しい説明は、githubこちらのページを参照ください

app/modles/user.rbを見ると以下のモジュールがデフォルトで有効となっています

認証をかけてみる

実際に認証をかけるには、該当のコントローラーに以下の一行を追加します

認証をかけたページへアクセスし、以下の画面が表示されれば成功です

devise認証画面

deviseの認証画面

認証後は以下のヘルパーを用いて、関連の情報を取得できます

  • user_signed_in?:ログインしているかどうか
  • current_user:ログイン中のユーザー情報
  • user_session:ユーザーのセッション情報

参考