Hatena::Groupkdri

KazusaAPI開発日誌 このページをアンテナに追加 RSSフィード

2007-04-30

acts_as_authenticated rails plugin をつかってみる

|  acts_as_authenticated rails plugin をつかってみる - KazusaAPI開発日誌 を含むブックマーク はてなブックマーク -  acts_as_authenticated rails plugin をつかってみる - KazusaAPI開発日誌  acts_as_authenticated rails plugin をつかってみる - KazusaAPI開発日誌 のブックマークコメント

ユーザ認証にacts_as_authenticatedをつかってみる。

railsアプリを準備

aaaという名前であたらしいrailsアプリを作成する。データベースはsqlite3を選択。

% rails aaa -d sqlite3

acts_as_authenticatedプラグインのインストール
% ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated

もしくは、プラグインの source に登録してからインストール

% ruby script/plugin source http://svn.techno-weenie.net/projects/plugins/
% ruby script/plugin install acts_as_authenticated

vendor/plugins に acts_as_authenticated というディレクトリができる。


userモデルとaccountコントローラを作成

script/generate を引数無しで実行すると、acts_as_authenticatedのgeneratorが追加されているのがわかる。

Installed Generators
  Plugins: authenticated, authenticated_mailer

script/generate authenticated の第二引数がモデル名になり、第三引数がコントローラ名になる。

% ruby script/generate authenticated user account
      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/account
      exists  test/functional/
      exists  test/unit/
      create  app/models/user.rb
      create  app/controllers/account_controller.rb
      create  lib/authenticated_system.rb
      create  lib/authenticated_test_helper.rb
      create  test/functional/account_controller_test.rb
      create  app/helpers/account_helper.rb
      create  test/unit/user_test.rb
      create  test/fixtures/users.yml
      create  app/views/account/index.rhtml
      create  app/views/account/login.rhtml
      create  app/views/account/signup.rhtml
      create  db/migrate
      create  db/migrate/001_create_users.rb

accont/index、account/login、account/signupビューとusersテーブルのスキーマ、account_controllerのテストも作成されている。

usersテーブルを作成
% rake db:migrate
テストを実行
% rake test
(in /Users/nakao/Applications/aaa)
/opt/local/bin/ruby -Ilib:test "/opt/local/lib/ruby/gems/1.8/gems/rake-0.7.2/lib/rake/rake_test_loader.rb" "test/unit/user_test.rb" 
Loaded suite /opt/local/lib/ruby/gems/1.8/gems/rake-0.7.2/lib/rake/rake_test_loader
Started
..........
Finished in 0.795045 seconds.

10 tests, 17 assertions, 0 failures, 0 errors
/opt/local/bin/ruby -Ilib:test "/opt/local/lib/ruby/gems/1.8/gems/rake-0.7.2/lib/rake/rake_test_loader.rb" "test/functional/account_controller_test.rb" 
Loaded suite /opt/local/lib/ruby/gems/1.8/gems/rake-0.7.2/lib/rake/rake_test_loader
Started
..............
Finished in 1.182934 seconds.

14 tests, 26 assertions, 0 failures, 0 errors
/opt/local/bin/ruby -Ilib:test "/opt/local/lib/ruby/gems/1.8/gems/rake-0.7.2/lib/rake/rake_test_loader.rb"
サインアップ画面を確認

script/serverでサーバを起動して、http://localhost:3000/account/ をブラウザでひらくと http://localhost:3000/account/signup へリダイレクトされる。

f:id:nakao_mitsuteru:20070430233547j:image

規定値では、Login は三文字以上、Passwordは四文字以上を要求している。

ログイン画面を確認

http://localhost:3000/account/login をブラウザでひらく。

f:id:nakao_mitsuteru:20070430233547j:image


実際に利用する時には、適切なときにloginやsignupのページに遷移するようにリダイレクトを設定することになるだろう。

トラックバック - http://kdri.g.hatena.ne.jp/nakao_mitsuteru/20070430