アプリをRails2.3からRails3.0にアップグレードしていますが、クリアランスgem(gem'clearance'、 '1.0.0.rc2')をアップグレードしましたが、sign_outはメソッドdeleteである必要があるようです。
サインアウトを次のように更新しました。
<%= 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 %>