ルーティング for Devise 2.1
2012-09-06
DeviseといえばRailsにおける代表的な認証ライブラリです。 バージョンアップに伴いログアウト部分に修正が必要になりました。
修正前はこんなエラーが発生
# viewでdestroy_user_session_pathが使えなくなりました (゚Д゚)ゴルァ!
<%= link_to "ログアウト", destroy_user_session_path %>
# => The action 'sign_out' could not be found for UsersController
Userにおけるサンプル
# ==== Examples
#
# Let's say you have an User model configured to use authenticatable,
# confirmable and recoverable modules. After creating this inside your routes:
#
devise_for :users
#
# This method is going to look inside your User model and create the
# needed routes:
#
# Session routes for Authenticatable (default)
new_user_session GET /users/sign_in {:controller=>"devise/sessions", :action=>"new"}
user_session POST /users/sign_in {:controller=>"devise/sessions", :action=>"create"}
destroy_user_session DELETE /users/sign_out {:controller=>"devise/sessions", :action=>"destroy"}
# Password routes for Recoverable, if User model has :recoverable configured
new_user_password GET /users/password/new(.:format) {:controller=>"devise/passwords", :action=>"new"}
edit_user_password GET /users/password/edit(.:format) {:controller=>"devise/passwords", :action=>"edit"}
user_password PUT /users/password(.:format) {:controller=>"devise/passwords", :action=>"update"}
POST /users/password(.:format) {:controller=>"devise/passwords", :action=>"create"}
# Confirmation routes for Confirmable, if User model has :confirmable configured
new_user_confirmation GET /users/confirmation/new(.:format) {:controller=>"devise/confirmations", :action=>"new"}
user_confirmation GET /users/confirmation(.:format) {:controller=>"devise/confirmations", :action=>"show"}
POST /users/confirmation(.:format) {:controller=>"devise/confirmations", :action=>"create"}
destroy_user_session
があるのに使えないとかドツボに嵌りそうですね。
ひとまず以下の様な修正をすることでログアウトの問題を修正します。
devise_for :users
devise_scope :user do
delete '/logout' => 'devise/sessions#destroy', as: :logout
end
カスタマイズ
また、以前はdevise_for :resources do ... end
で色々なカスタマイズができましたが、非推奨となり、代わりにdevise_scope
を使うよう推奨されています。
Devise 2.1 はじまってました
Deviseおすすめリンクまとめ
http://devise.plataformatec.com.br/
plataformatecの公式サイトのようである。