1

アプリを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 %>
4

1 に答える 1

0

OK、私は答えを見つけました。レール3で、JavaScriptの削除でさえ外部ソースからのものです。Rails 3のセットアップをセットアップした人には、プロトタイプやjqueryが含まれていなかったため、これに何も作用していませんでした。https://github.com/rails/jquery-ujsを構成することでうまくいくはずです!

于 2012-10-07T13:57:02.903 に答える