我正在构建一个基本的 CRUD 应用程序。用户模型运行良好。但是,我创建了我的第二个设计模型(管理员),并且在尝试使用我的管理员帐户登录和注销时收到错误消息。
错误
uninitialized constant Admins::SessionsControllerController
sessions_controllers.rb
管理 Controller 在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'
我正在寻求帮助以使我的管理模型正常工作。有谁知道如何让它正常工作?
最佳答案
你在 devise_for 中有错别字,
devise_for :admins, :controllers => { :sessions => "admins/sessions_controller" }
应该是
devise_for :admins, :controllers => { :sessions => "admins/sessions" }
参见 https://github.com/plataformatec/devise#configuring-controllers
关于ruby-on-rails - 设计无法完成 session Controller 功能的管理模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20208156/