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

destroy_user_session DELETE   /users/logout(.:format)                                             devise/sessions#destroy

ルーティング エラー

[GET] "/users/logout" に一致するルートはありません

  devise_for :users, path_names: {sign_in: "login", sign_out: "logout"},
             controllers: {omniauth_callbacks: "omniauth_callbacks"}
4

1 に答える 1

1

link_to タグには必要に応じて含ま:method => :deleteれていますが、エラー メッセージには、リクエストが GET メソッドで行われていることが示されています。ルートは DELETE リクエスト専用であるため、これは機能しません。

「サインアウト」リンクをクリックしてすぐにエラー メッセージが表示されましたか? あなたの答えはノーだと思います。リンクを使用せずに、ブラウザーで直接 /users/logout にアクセスしようとしている可能性が高くなります。これは、DELETE ではなく GET リクエストになります。

于 2013-08-08T21:08:11.067 に答える