2014-05-17 89 views
3

我用鋼軌4.1.0和設計我已經在Member模型類設置設計,當我點擊‘註銷’鏈接波紋管:沒有路由匹配[GET]「/會員/ SIGN_OUT設計

<%= link_to "Log out", destroy_member_session_path, :method => :delete %> 

我碰到下面的錯誤只在生產環境:

沒有路由匹配[GET]「/會員/ SIGN_OUT設計

注:我的預編譯我的資產,包括在我的application.js文件如下:

//= require jquery 
//= require jquery_ujs    
+0

在語法上,它看起來我的權利。你只有'Member'類的設計,對吧? – kiddorails

+2

它看起來像我的jQuery UJS不工作。這是通知':method =>:delete',並使該表單使用該方法提交。你能看到jQuery和jQuery UJS實際上是在你的瀏覽器中加載的嗎? –

+0

@kiddorails不,我有設計用戶和成員 – AhmedShawky

回答

2

這發生在你沒有安裝gem jquery-ujs或您沒有通過= javascript_include_tag "application"在應用程序中調用所生成的JavaScript,該響應將作爲GET請求發送,並且路由將失敗。

檢查下列選項中,使其工作:

  1. devise.rb變化config.sign_out_via = :get(不 建議,因爲DELETE就是用這個合適的RESTful方式)

    config.sign_out_via = :delete 
    
  2. 使用按鈕代替link_to

    = button_to('Logout', destroy_user_session_path, :method => :delete) 
    

    使用button_to Rails將會在進行正確的DELETE調用時完成繁重的工作。你可以 ,然後按鈕樣式看起來像一個鏈接,如果你願意。

  3. 在你的routes.rb

    devise_for :members do 
        get '/members /sign_out' => 'devise/sessions#destroy' 
    end 
    
0

在你routes.rb順序應該是這個

devise_for :members 
resources :members 

resources :members應該來下devise_for :members

相關問題