1

session#destroy アクションにコード行を追加しようとしています。私の傾向は、デバイスコントローラーを継承するコントローラーでオーバーライドすることでした。私は devise_for 構文にかなり精通していますが、これらの結果は devise 1.0.7 から取得しています。

map.devise_for :users, :controllers => {:sessions => 'facebook_cookie'}

                         new_user_session GET    /users/sign_in                                                        {:controllers=>{:sessions=>"facebook_cookie"}, :action=>"new", :controller=>"sessions"}
                             user_session POST   /users/sign_in                                                        {:controllers=>{:sessions=>"facebook_cookie"}, :action=>"create", :controller=>"sessions"}
                     destroy_user_session GET    /users/sign_out                                                       {:controllers=>{:sessions=>"facebook_cookie"}, :action=>"destroy", :controller=>"sessions"}
                        new_user_password GET    /users/password/new(.:format)                                         {:action=>"new", :controller=>"passwords"}


map.devise_for :users, :controllers => {:sign_out => 'facebook_cookie'}

                         new_user_session GET    /users/sign_in                                                        {:controllers=>{:sign_out=>"facebook_cookie"}, :action=>"new", :controller=>"sessions"}
                             user_session POST   /users/sign_in                                                        {:controllers=>{:sign_out=>"facebook_cookie"}, :action=>"create", :controller=>"sessions"}
                     destroy_user_session GET    /users/sign_out                                                       {:controllers=>{:sign_out=>"facebook_cookie"}, :action=>"destroy", :controller=>"sessions"}
                        new_user_password GET    /users/password/new(.:format)                                         {:action=>"new", :controller=>"passwords"}


map.devise_for :users, :controller => 'facebook_cookie'

                        new_user_session GET    /users/sign_in                                                        {:action=>"new", :controller=>"sessions"}
                             user_session POST   /users/sign_in                                                        {:action=>"create", :controller=>"sessions"}
                     destroy_user_session GET    /users/sign_out                                                       {:action=>"destroy", :controller=>"sessions"}
                        new_user_password GET    /users/password/new(.:format)                                         {:action=>"new", :controller=>"facebook_cookie"}


map.devise_for :users, :controller => {:sessions => 'facebook_cookie'}

                         new_user_session GET    /users/sign_in                                                        {:action=>"new", :controller=>"sessions"}
                             user_session POST   /users/sign_in                                                        {:action=>"create", :controller=>"sessions"}
                     destroy_user_session GET    /users/sign_out                                                       {:action=>"destroy", :controller=>"sessions"}
                        new_user_password GET    /users/password/new(.:format)                                         {:action=>"new", :controller=>"sessionsfacebook_cookie"}

:controller を指定すると、気になるものを除くすべてのデバイスコントローラーに影響するようです(残りは貼り付けから省略しました)。一方、:controllers を指定すると、SessionsController のルートにのみ影響しますが、ルーティングをオーバーライドする代わりに、役に立たないパラメーターが追加されます。

4

0 に答える 0