さて、前回の記事では、ログインの仕組みを作成しました。今度はログアウトの仕組みを作成します。
この記事は前回の続きなので、前回を読んでいないと、多分理解できません。
環境は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 件のコメント:
コメントを投稿