Rail3でDeviseを使う

はじめに、RubyMine3.2.2でFile -> New Projectで図のようなdevise_testというRailsプロジェクトを作成する。Railsのバージョンは3.09


RailsアプリケーションのルートにあるGemfileに

以下を追加

gem 'devise', '1.4.2'

続いて、メニューのTools -> BundleからInstallを選択すし、以下の画面にて--path vendor/bundleを入力し、OKをクリック。


pathを指定することで、このアプリケーションに特化したgemが管理できるらしい。

そうすると、vendor以下に図のようなディレクトリができる。

次に、Tools -> Run Rails GeneratorでReload Generator Listを選択し、
Generator Listを更新後、再び、Run Rails Generatorでdevise:installを選択し、Deviseを使えるようにする。


後は、generator でdevise [モデル名」で認証機能のついたモデルを作成可能になる。

> rails generator device User

とやると、db/migrateに

時刻_devise_create_user.rb

app/modelsに

user.rbが作成される。

database_authenticatable:パスワードを暗号化してDBに格納し、そのパスワードで認証を行う。認証はHTTP POSTリクエストまたはHTTP基本認証に対応。

token_authenticatable:ユーザーごとの認証トークンでサインインする。トークンはクエリストリングまたはHTTP基本認証で与えられる。

confirmable:サインインでアカウントがすでに確認されている場合、サインインの確認と認証をメールで行う。

recoverable:パスワードのリセットとリセット方法をメールします。

registerable:ユーザー自身が登録でき、編集、削除できます。

rememberable:クッキーからユーザーのトークンを作成、削除できます。

trackable:タイムスタンプとIPアドレスでユーザーをトラッキングします。

timeoutable:ある期間でユーザーのセッションを削除します。

validatable:ユーザーのメールアドレスとパスワードをバリデーションします。


lockable:何回かサインインに失敗した場合、アカウントをロックします。またメールまたは特定の期間でロックを解除します。

encryptable: デフォルトのBcrypt以外の他の暗号化をサポートします。