路由以在注销时显示操作

时间:2014-02-24 07:06:57

标签: ruby-on-rails

我有一个注销链接应该路由到用户#do_logout,但不管我做什么,如果我点击链接,它会路由到用户#show。这是代码:

路线:

  resources :users do
    member do
      get :profile
      post :profile
    end
    collection do
      get "signup", to: 'users#new'
      get "login"
      post "do_login"
      post "do_logout"
    end
  end

链接:

li = link_to "Sign Out", do_logout_users_path

用户控制器操作:

  def do_logout
    session[:user_id] = nil
    redirect_to :root
  end

非常感谢任何帮助。这让我疯了。

1 个答案:

答案 0 :(得分:1)

您的代码无效,因为您为POST设置了do_logout路由,并且您的注销链接正在发出GET请求。

要从视图中执行POST请求,您必须创建表单

= form_tag do_logout_users_path do
  = submit_tag 'Sign Out'

您可以使用delete方法

在路线

delete "do_logout"

和链接

= link_to "Sign Out", do_logout_users_path, :method => :delete