Rails 3 и Devise - выход из системы не работает после преобразования приложения в Rails 3 - PullRequest
3 голосов
/ 30 октября 2011

Мои маршруты

devise_for :users
devise_for :admin_users, ActiveAdmin::Devise.config #I have also tried removing this for any conflicts
resources :users

Ссылка на выход.Маршруты к /users/sign_out просто отлично

<%= link_to "Logout", destroy_user_session_path, :method => :delete %>

При попытке выйти выдает ошибку:

Couldn't find User with id=sign_out

Если я потом удаляю ресурс: пользователи, я получаю:

The action 'sign_out' could not be found for UsersController

Что не так?Точно такой же код работал с Rails 2.3.8 and соответствующей Devise версией

Вход в систему и т. Д. Работает нормально.

Моя настройка:

  • Ruby 1,92
  • Рельсы 3.1.1.rc3
  • Устройство 1.4.8

1 Ответ

4 голосов
/ 30 октября 2011

Прежде всего, использование одного и того же пути для UsersController и Devise не очень хорошая идея.Я бы предложил использовать путь типа '/ account' для Devise.

Но это, вероятно, не является причиной вашей проблемы с выходом из системы, так как devise_for :users предшествует resources :users в rout.rb.Причина, по-видимому, в том, что, если в вопросе нет опечатки, после destroy_user_session_path нет запятой.:method => :delete будет интерпретироваться как параметр destroy_user_session_path, если нет запятой.

Кроме того, убедитесь, что вы включили jquery и jquery_ujs в application.js, так как они необходимы для работы :method => :delete.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...