没有路线匹配[GET]" / sessions / 2"删除请求

时间:2015-09-03 09:50:28

标签: ruby-on-rails routes logout

我试图在管理员端添加注销链接,但它似乎正在执行get请求,即使我特意将其指定为删除请求。

注意:顺便说一下,我没有使用Devise,我故意不在此项目中使用它。

<%= link_to session_path(current_user), method: :delete do %>
   <%= fa_icon "sign-out" %>
   Logout
<% end %>

这是我在管理导航栏上使用的代码。它也与网站前端使用的代码相同,但前端的代码也可以使用。它成功地将用户注销。但在管理方面,它引发了这个错误。

这是在网站前端使用的,它的工作原理。

<%= link_to "log out", session_path(current_user), method: :delete %>

这是我的路线文件中的内容:

  resources :sessions, only: [:new, :create, :destroy]

这是路径格式:

session DELETE /sessions/:id(.:format)                sessions#destroy

这是破坏方法:

def destroy
  cookies.delete(:auth_token)
  redirect_to root_url, notice: "Logged out!"
end

任何人都可以看到从管理员端退出的问题是什么?

注意:顺便说一下,我没有使用Devise,我故意不在此项目中使用它。

编辑1: 好吧我正在思考&#34; Uncaught Error:Bootstrap的JavaScript需要jQuery&#34;这导致了错误。我在Bootstrap之前需要Jquery所以我不知道这里发生了什么。

2 个答案:

答案 0 :(得分:0)

试试这个

<%= link_to content_tag(:i, "Sign Out", :class => "fa fa-#{icon_name}"), session_path(current_user), method: :delete %>

OR

<%= link_to content_tag(:i, fa_icon("sign-out", text: "Sign Out")), session_path(current_user), method: :delete %>

答案 1 :(得分:0)

所以我发现了问题。我忘记了包括 <%= javascript_include_tag 'admin_application' %> 在我的admin_application.html.erb文件中,这意味着没有包含jquery。现在它是,注销链接工作。耶!