Выход из приложения (которое использует Devise) после внедрения Rails_admin (и перехода на Rails 3.1)

ОБНОВЛЕНИЕ: /* Мне удалось решить проблему, настроив конвейер ресурсов, как описано в Railscasts #282*/

Я использую Devise для аутентификации в своем приложении. Он работал нормально, пока я не добавил гем Rails_admin. В процессе я также перешел на Rails 3.1, так что, возможно, проблема связана с переходом на 3.1.

При выходе получаю:

"Не удалось найти пользователя с id=sign_out"

Он восходит к действию show пользователя_контроллера и в параметрах: {"id"=>"sign_out"}

Ссылка для выхода находится в макете приложения:

<%= link_to 'User Sign Out', destroy_user_session_path, :method => :delete %>

Соответствующий маршрут:

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

Эта проблема похожа на: проблема с выходом из Devise в моем приложении за исключением того, что я указываю метод удаления.

Следовать по. . нашел этот метод в Devise:

  def after_sign_out_path_for(resource_or_scope)
    root_path
  end

Может кто подскажет как копать дальше? т.е. как найти 'resource_or_scope'? root_path отлично выглядит в маршрутах.

Вот мои маршруты.rb:

Notebook::Application.routes.draw do

  mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'

  devise_for :owners

  match '/user' => 'users#dashboard', :as => :user_root
  match '/customer' => 'customers#dashboard', :as => :customer_root

  match 'users/dashboard' => 'users#dashboard'

  match 'customers/dashboard' => 'customers#dashboard'


  devise_for :users

  devise_for :customers

  resources :users

  resources :customers, :only => [:index, :show, :edit, :update, :destroy]

  root :to => 'misc#landing'
end

person John    schedule 05.10.2011    source источник
comment
Используете ли вы настраиваемый контроллер сеансов? Также давайте взглянем на ваш файл routes.rb, чтобы понять, что происходит?   -  person janders223    schedule 06.10.2011
comment
Без использования пользовательского контроллера. Я думаю, что одним из исправлений, хотя я не думаю, что это предпочтительнее, будет изменение контроллера сеансов, чтобы перенаправление не шло на after_sign_out_path. Добавил мой route.rb выше.   -  person John    schedule 06.10.2011
comment
after_sign_out_path - это просто обратный вызов после уничтожения сеанса, и он не даст вам того, что вы хотите. Я никогда не использовал гем rails_admin, и мне придется покопаться в нем больше, прежде чем я смогу узнать больше о том, что происходит.   -  person janders223    schedule 06.10.2011
comment
Ваша проблема кажется достаточно похожей на несколько, с которыми я сталкивался раньше, включая мою собственную проблему. Посмотрите мой ответ на этот вопрос [stackoverflow.com/questions/6808465/. Надеюсь это поможет!   -  person vich    schedule 13.10.2011
comment
Мне удалось решить проблему, настроив конвейер ресурсов, как описано в Railscast #282.   -  person John    schedule 14.10.2011