2014-12-27 43 views
0

我正在使用Devise gem構建管理員/用戶身份驗證到我的網絡應用程序。沒有路線匹配[GET]「/ admin/signout」

我收到此錯誤:沒有路由匹配[GET]「/ admin/signout」,當我點擊「登出」鏈接時。

我的html苗條代碼:= link_to destroy_admin_session_path, method: :delete

冉「耙路線」,而應用程序destroy_admin_session

我在谷歌Chrome的檢查元素的鏈接有「數據方法=刪除」看見。

我的會話控制器:

# encoding: utf-8 
class Admin::Devise::SessionsController < Devise::SessionsController 
    layout 'login' 

    def after_sign_in_path_for(admin) 
    admin_admins_path 
    end 

    def after_sign_out_path_for(resource_or_scope) 
    new_admin_session_path 
    end 

end 

但我發現了一個[GET]錯誤。可能是什麼?

回答

0

請檢查jQuery和jquery_ujs在你的application.js需要

//= require jquery 
//= require jquery_ujs 

,並確保您加載的application.js在佈局文件:

= javascript_include_tag 'application' 

,因爲你不能實際上使用HTTP DELETE方法建立鏈接,如果您將method: :delete添加到幫助程序中,Rails會在鏈接上做一些魔術。

這就是爲什麼你需要JavaScript。

+0

謝謝!這工作! 但是,如果我不想使用jquery和jquery_ujs ..我需要做什麼與應用程序?例如:我想使用角度而不是Jquery .. – leandrotk 2014-12-27 19:18:10

+0

我不明白Angular是如何替代jQuery的。他們是兩個完全不同的軟件包。你可以在jQuery旁邊使用Angular。 – 2014-12-27 19:32:16

+0

我工作的公司,我們使用Angular而不是Jquery來實現網站中的所有互動。 當我刪除jquery或jquery_ujs時,remove方法不起作用。但我不想使用Jquery – leandrotk 2014-12-27 21:01:20