尝试在Rails中删除会话时出错

时间:2014-09-20 16:01:33

标签: ruby ruby-on-rails-3 session ruby-on-rails-4 session-cookies

Rails的新手。我的rails应用程序中有一个名为Admin的模型。当我试图删除会话时,我得到无路线匹配错误 我创建了会话控制器来管理如下所示的会话

class AdminSessionsController < ApplicationController

  before_action :confirm_logged_in, :except => [:new, :create, :destroy]

  def destroy
    session[:admin_id] = nil
    flash[:notice] = "You are now logged out"
    render("new")
  end

end

我在routes.rb中定义的路由

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

我在其他视图中有链接删除会话

<%= link_to "Sign out", :controller => "admin_sessions", :action => "destroy" %>

我收到以下错误

No route matches {:action=>"destroy", :controller=>"admin_sessions"}

请帮助别人!

1 个答案:

答案 0 :(得分:0)

您可以在资源的同时定义资源。您不依赖于特定的ID,因此它始终应该使用一个资源(DELETE / admin_sessions / id vs DELETE / admin_sessions)进行响应。将您的路径资源更改为资源,它将起作用。