设计管理模型无法完成会话控制器功能

时间:2013-11-26 03:52:20

标签: ruby-on-rails ruby authentication devise ruby-on-rails-4

我正在构建一个基本的CRUD应用程序。用户模型完美运行。但是,我创建了我的第二个设计模型(admin),并且在尝试使用我的管理员帐户登录并使用sign_out时收到错误。

错误

uninitialized constant Admins::SessionsControllerController

sessions_controllers.rb

管理员控制器位于controllers / admins / sessions_controllers.rb

class Admins::SessionsController < Devise::SessionsController
end

的routes.rb

resources :gifts
devise_for :users
devise_for :admins, :controllers => { :sessions => "admins/sessions_controller" }

authenticated :user do
  root to: "gifts#index", :as => "authenticated_user_root" 
end

authenticated :admin do
  root to: "management#index", :as => "authenticated_admin_root" 
end

root :to => 'pages#index'

当我耙路线时,我也看到正确的路线:

destroy_user_session_path    DELETE  /users/sign_out(.:format)   devise/sessions#destroy

admin.rb

class Admin < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable
end

完整跟踪

activesupport (4.0.0) lib/active_support/inflector/methods.rb:228:in `const_get'
activesupport (4.0.0) lib/active_support/inflector/methods.rb:228:in `block in constantize'
activesupport (4.0.0) lib/active_support/inflector/methods.rb:224:in `each'
activesupport (4.0.0) lib/active_support/inflector/methods.rb:224:in `inject'
activesupport (4.0.0) lib/active_support/inflector/methods.rb:224:in `constantize'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:76:in `controller_reference'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:66:in `controller'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:44:in `call'
actionpack (4.0.0) lib/action_dispatch/routing/mapper.rb:44:in `call'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:655:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `catch'
warden (1.2.3) lib/warden/manager.rb:34:in `call'

我正在寻求帮助以使我的管理模型正常运行。有谁知道如何正常工作?

1 个答案:

答案 0 :(得分:1)

你在devise_for中有一个拼写错误,

devise_for :admins, :controllers => { :sessions => "admins/sessions_controller" }

应该是

devise_for :admins, :controllers => { :sessions => "admins/sessions" }

请参阅https://github.com/plataformatec/devise#configuring-controllers