Выход из приложения (использующего Devise) после реализации Rails_admin (и переход на Rails 3.1) - PullRequest
2 голосов
/ 06 октября 2011

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

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

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

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

Прослеживается до действия show users_controller и в параметрах: {"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
...