2012-10-04 49 views
1

我正在從rails 2.3升級應用程序到rails 3.0,我升級了清除寶石(gem'clearance','1.0.0.rc2'),似乎sign_out需要被方法刪除。rails 3方法刪除清除

我更新了我的標誌了出來:

<%= link_to 'SignOut', sign_out_path, :method => "delete" %>< 

換算成:

<a href="/logout" data-method="delete" rel="nofollow">Logout</a> 

但是,當我看到服務器日誌,它說:

Started GET "/sign_out?timeout=true" for 127.0.0.1 at 2012-10-03 20:28:38 -0400 
User Load '44c84e19c75fa993029ca68b4f32019d2a56ab22' LIMIT 1 
ActionController::RoutingError (No route matches "/sign_out"): 

耙路線顯示:

sign_out DELETE /sign_out(.:format) {:action=>"destroy", :controller=>"clearance/sessions"} 

任何想法可能是錯誤的?

在相關的說明,我有一個自動註銷3小時後也不會工作,我不知道如何做方法=從JavaScript刪除...?

function logout() 
{ 
    location.href='/sign_out?timeout=true'; 
} 

<% if current_user != nil %> 
// 3 hours of inactivity log them out 
var t= setTimeout("logout()",10800000); 
<% end %> 
+0

代碼對我來說看起來很好,但您的服務器日誌清楚地顯示它正在執行GET。所以,這不是一個答案,但爲了克服這個問題,你可以嘗試將它從一個href改爲適當的提交類型輸入。你的問題可能與href,而不是你的路線。另外,這是兩個問題。你應該刪除第二個問題並單獨提出。 – pduey

+0

感謝pdue,我包括第二部分,以排除按鈕建議,如果我只能通過按鈕註銷,那對我來說沒有好處。我想我可以嘗試一下,看看它是否刪除... – Joelio

+0

這就是我的意思,暫時用一個按鈕來嘗試它,這樣你就可以隔離真正的問題。然後閱讀這個http://stackoverflow.com/questions/4342083/rails-3-link-to-method-delete-not-working – pduey

回答

0

好的,我找到了答案,在rails 3中,甚至刪除javascript來自外部源。設置我們的rails 3設置的人不包括原型或jquery,因此沒有任何事情可以採取行動。配置https://github.com/rails/jquery-ujs應該做的伎倆!