Ruby on rails 如何使用Rails中的DELETE方法将/logout路由到/login

Ruby on rails 如何使用Rails中的DELETE方法将/logout路由到/login,ruby-on-rails,routing,Ruby On Rails,Routing,路线对我来说仍然是难以逾越的。我只想让注销操作真正将某人注销。以下是我的尝试: resource :login, controller: "sessions" do collection do get 'new' get 'create' end end match '/logout', :to => 'login', :controller => "sessions", :action => :destroy, :method => :dele

路线对我来说仍然是难以逾越的。我只想让
注销
操作真正将某人注销。以下是我的尝试:

resource :login, controller: "sessions" do
  collection do
    get 'new'
    get 'create'
  end
end

match '/logout', :to => 'login', :controller => "sessions", :action => :destroy, :method => :delete
你看,我有一个
会话
控制器,我称之为“登录”。但这使我的链接:

<%= link_to "Log Out", login_path, :method => :delete %>
:删除%>

我没有问题,除了我正在与一个外部站点集成,该站点将我的站点用作SSO。我需要提供一个“注销”链接到他们。所以我希望它只是“注销”。

也许这就是你要找的

在routes.rb中:

controller :sessions do
    get 'login' => :new
    post 'login' => :create
    delete 'logout' => :destroy
end
对于注销链接:

<%= link_to 'Logout', logout_path("current"), method: :delete %>


您不能在会话控制器中执行一个
注销
操作并在那里销毁会话吗?然后你的路线可以指向会话#注销

为什么我没有想到这一点?哎呀。我刚把名字从销毁改为注销。请把这作为一个答案,这样我就可以结束它,并奖励你的分数。完成并删除评论。