やさしいdeviseの使い方


rails 2系までは認証プラグインとしてrestful_authenticationを使用していましたが、
残念ながらrestful_authenticationはrails 3系に対応していないということで、
新しい認証方式を探さなければいけません。


で、今はdeviseというのが流行りらしいので早速使ってみます。


基本的には次のページを参考に(というかほぼそのまんま)しています。

http://d.hatena.ne.jp/next49/20100905/p1
http://d.hatena.ne.jp/babie/20100729/1280381392

インストール


インストールは簡単で次のコマンドでOK。

gem install devise


railsプロジェクトを予めつくっておきます。


プロジェクト直下のGemfileに以下を追加します。

gem 'devise', '1.4.2'


その後次のコマンドを叩きます。

rails generate devise:install

app/views/layouts/application.html.erbに以下を追加。

<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>


config/environments/development.rbに以下を追加。

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

使い方

まずはuserモデルを作成します。

rails g devise user

このあと、migrateファイルとmodelをいじって、
どういう形の認証をおこなうかを設定するのですが今回は省略。


deviseは認証画面などを簡単に作れて、次のコマンドでひと通りの画面を作って
くれます。

rails g devise:views


ログインしているかどうかのチェックをおこなうため、
app/controllers/application_controller.rbに次を追加します。

before_filter :authenticate_user!


適当にscaffoldしてからサーバ起動しアクセスすると、きちんと認証画面が表示
されます。
サインアップすると、ちゃんとscaffoldの画面が表示されます。


初めて触りましたが、結構細かい設定ができるようで、
かなりの好印象。今後はこれになるのかなあ。