2014-12-27 123 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