2012年4月11日水曜日

Ruby on Rails3でdeviseを使う前準備その3ログアウト

さて、前回の記事では、ログインの仕組みを作成しました。今度はログアウトの仕組みを作成します。
この記事は前回の続きなので、前回を読んでいないと、多分理解できません。
環境はruby-1.9.3-p0, rails3.2.2, sqlite3です。

ルーティングの設定


  get "log_out" => "sessions#destroy", :as => "log_out" # 今回追加
  get "log_in" => "sessions#new", :as => "log_in"
  get "sign_up" => "users#new", :as => "sign_up"
  root :to => "users#new"
  resources :users
  resources :sessions

設定ができているかをrake routesコマンドで確認します。


     log_out GET    /log_out(.:format)           sessions#destroy
      log_in GET    /log_in(.:format)            sessions#new
     sign_up GET    /sign_up(.:format)           users#new
        root        /                            users#new
       users GET    /users(.:format)             users#index
             POST   /users(.:format)             users#create
    new_user GET    /users/new(.:format)         users#new
   edit_user GET    /users/:id/edit(.:format)    users#edit
        user GET    /users/:id(.:format)         users#show
             PUT    /users/:id(.:format)         users#update
             DELETE /users/:id(.:format)         users#destroy
    sessions GET    /sessions(.:format)          sessions#index
             POST   /sessions(.:format)          sessions#create
 new_session GET    /sessions/new(.:format)      sessions#new
edit_session GET    /sessions/:id/edit(.:format) sessions#edit
     session GET    /sessions/:id(.:format)      sessions#show
             PUT    /sessions/:id(.:format)      sessions#update
             DELETE /sessions/:id(.:format)      sessions#destroy
  

準備OKです。続いてsessions_controllerコントローラーにログアウト処理を実装します。

ログアウト処理


  def destroy
    session[:user_id] = nil
    redirect_to root_url, :notice => "Logged out!"
  end

以上で完了です。サーバーを起動して、http://localhost:3000/log_outにアクセスしましょう。
ログアウトされるはずです。
アプリケーションでは、viewでログイン、ログアウトの状態を切り替えられるようにすると良いでしょう。

さて、これで認証のコーディングは終わりです。
確かに、一度はくらいはスクラッチから認証の仕組みはつくっておいたほうが良さそうですね。
他の認証系のgemも同じような作りでしょうから。

僕が今回参考にしたのは
http://railscasts.com/episodes/250-authentication-from-scratch
です。

英語のサイトですが、この記事と組み合わせれば特に問題ないでしょう。

それでは、また。長い時間お疲れさまでした。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...