1

我有一个公开可用的 Rails 应用程序,但有一个只能由注册用户访问的管理仪表板。

我正在将 Thoughtbot Administrate 用于仪表板部分,并且我正在尝试使用 Clearance 实现仪表板身份验证。

我的应用程序没有对公共部分进行任何身份验证,因此我将线路include Clearance::ControllerApplicationControllerto移到Admin::ApplicationController并将登录/注销按钮放在仪表板的导航栏中,但是,当我单击登录按钮时,应用程序向我显示我的应用程序的身份验证表单,而不是仪表板部分的身份验证表单(我可以说是因为两者使用的样式不同),所以我的问题是,有没有办法只为管理部分安装许可,就像只安装它一样管理员命名空间?

清关部分rake routes为:

         passwords  POST   /passwords(.:format)                     clearance/passwords#create
      new_password  GET    /passwords/new(.:format)                 clearance/passwords#new
           session  POST   /session(.:format)                       clearance/sessions#create
     user_password  POST   /users/:user_id/password(.:format)       clearance/passwords#create
edit_user_password  GET    /users/:user_id/password/edit(.:format)  clearance/passwords#edit
                    PATCH  /users/:user_id/password(.:format)       clearance/passwords#update
                    PUT    /users/:user_id/password(.:format)       clearance/passwords#update
             users  POST   /users(.:format)                         clearance/users#create
           sign_in  GET    /sign_in(.:format)                       clearance/sessions#new
          sign_out  DELETE /sign_out(.:format)                      clearance/sessions#destroy
           sign_up  GET    /sign_up(.:format)                       clearance/users#new

谢谢您的帮助!

4

1 回答 1

0

听起来唯一的问题是 Clearance 控制器正在使用您的应用程序布局而不是您的管理布局。您可以覆盖它,它记录在 README 中

Clearance::PasswordsController.layout 'my_passwords_layout'
Clearance::SessionsController.layout 'my_sessions_layout'
Clearance::UsersController.layout 'my_admin_layout'

无论你想要什么。如果你想影响所有的许可意见,我认为你可以这样做:

Clearance::BaseController.layout 'my_admin_layout'
于 2016-03-02T15:36:02.623 回答