この記事をはてなブックマークに登録 この記事のはてなブックマーク数 この記事を livedoor クリップに登録この記事の livedoor クリップ数 この記事を Buzzurl に登録 この記事の Buzzurl ブックマーク数

[PRESS 0007] Sample Application (BLOG) の作成 [2nd]


RAILS PRESS » Sample Application (BLOG) の作成 [1st]
の続きを..

LoginGeneratorでログインの仕組みを作る

RailsではLoginGeneratorというものを使って簡単にログインの仕組みを作ることができます。まずgemでlogin_generatorをインストールします。

CODE:
  1. gem install login_generator

次にログイン管理用コントローラを作成しましょう。ここではaccount_controllerという名前のコントローラを作成します。

CODE:
  1. ./script/generate login account

次にApplicationController(RAILS_ROOT/app/controllers/application_controller.rb)を以下のように編集してください。

RUBY:
  1. # Filters added to this controller will be run for all controllers in the application.
  2. # Likewise, all the methods added will be available for all controllers.
  3.  
  4. require_dependency "login_system"
  5. class ApplicationController <ActionController::Base
  6.     include LoginSystem
  7.     model :user
  8. end

既にuserテーブルを以下のように定義していると思いますが、LoginGeneratorではloginとpasswordというカラムを必要としますので、違う名前のカラムを作ってしまっている場合はもう一度DBを作成しなおしてください。

RUBY:
  1. create_table :users do |t|
  2.   t.column :login,    :string
  3.   t.column :password, :string
  4.   t.column :name,     :string
  5.   t.column :mail,     :string
  6.   t.column :profile,  :text
  7. end

あとはentrirs_controllerで以下の一行を加えてください。これでentries_controllerでshowとlist以外のアクションにログインが要求されます。

RUBY:
  1. before_filter :login_required, :except => [:show, :list]

場所は

RUBY:
  1. class EntriesController <ApplicationController

直下でOKです。

では早速WEBrickを立ち上げて(./script/serverを実行)、http://localhost:3000/entries/newにアクセスしてみましょう。http://localhost:3000/account/loginにリダイレクトされ、ログインが要求されるはずです。サインアップはhttp://localhost:3000/account/signupにアクセスしてください。

同様にusers_controllerでも

RUBY:
  1. before_filter :login_required, :except => [:show, :list]

と記述しておいてください。

次はエントリー投稿&編集についてです。
いつになるでしょう?


About this entry