2012-11-26 194 views
0

我設置了Devise來驗證/註冊用戶。銷燬會話,Rails設計

但是在註銷時遇到問題。

有此鏈接:

<%= link_to "Sign out", destroy_user_session_path, :method => :delete %> 

它看起來像這樣的HTML:

<a href="https://stackoverflow.com/users/sign_out">Sign Out</a> 

當我點擊它 - 得到這個錯誤:

No route matches [GET] "https://stackoverflow.com/users/sign_out" 
+0

它的路由作爲一個GET時,它應該是一個刪除。你正確地添加'method :: delete',所以我猜這是你的設計路由設置的問題。你能證明嗎? – joofsh

+0

第一個代碼引用顯示它:link_to ...:method =>:delete。或者你在問別的東西? – user1837021

+0

'方法::delete'和':method =>:delete'是相同的,我只是使用了較短的形式。我問你是否可以在你的設備路由設置中顯示你的'config/routes.rb'。 – joofsh

回答

1

首先,確保你在你的佈局文件「application.html.erb」中有<%= javascript_include_tag :defaults %>

然後,在你的配置 - >初始化 - > 「devise.rb」 文件,並確保它說:

config.sign_out_via = :delete

和你 「SIGN_OUT」 代碼destroy_user_session_path, :method => :delete應該工作。

如果仍不起作用,請發表評論!

祝你好運。

+0

有兩個網站版本。一個是HTML,另一個是Mobile。在:html版本 - 你是對的,我沒有javascript_include_tag:默認。一旦我添加它 - 它開始工作。但是:移動版本確實有這個標籤,並且仍然沒有註銷(同樣的錯誤)。我遵循這個教程:[http://ponzicoder.wordpress.com/2011/11/15/rails-3-basic-scaffold-devise-authentication-action-mailer-jquery-mobile/] – user1837021

+0

我修正了它。只需將application.html.erb的內容複製到application.mobile.erb即可。現在夠好了。謝謝! – user1837021