やさしい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の画面が表示されます。
初めて触りましたが、結構細かい設定ができるようで、
かなりの好印象。今後はこれになるのかなあ。