2014-02-24 65 views
0

我有一個註銷鏈接,應該路由到用戶#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

您的代碼無效,因爲您已爲do_logout設置了POST路線,並且您的註銷鏈接正在發出GET請求。

要從觀點做一個POST要求,你必須創建一個表單

= form_tag do_logout_users_path do 
    = submit_tag 'Sign Out' 

OR

你可以在路由使用delete方法本

delete "do_logout" 

和鏈接

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

很高興知道。謝謝。 – sturoid

+0

更新我的答案與你的代碼不起作用的原因。 – Santhosh

+0

我試過了,它仍然在做同樣的事情。這就像它無法擊中註銷路線,並且默認爲顯示。 – sturoid