Rails Devise和ActiveAdmin单一模型路由

kid*_*rew 3 ruby-on-rails devise activeadmin

我正在使用Devise和ActiveAdmin,我让他们users通过is_admin标志共享一个表.我的路线文件如下所示:

Site::Application.routes.draw do
  devise_for :users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)
end
Run Code Online (Sandbox Code Playgroud)

这给了我这些路线

                 Prefix Verb       URI Pattern                    Controller#Action
        new_user_session GET        /admin/login(.:format)         active_admin/devise/sessions#new
            user_session POST       /admin/login(.:format)         active_admin/devise/sessions#create
    destroy_user_session DELETE|GET /admin/logout(.:format)        active_admin/devise/sessions#destroy
           user_password POST       /admin/password(.:format)      active_admin/devise/passwords#create
       new_user_password GET        /admin/password/new(.:format)  active_admin/devise/passwords#new
      edit_user_password GET        /admin/password/edit(.:format) active_admin/devise/passwords#edit
                         PATCH      /admin/password(.:format)      active_admin/devise/passwords#update
                         PUT        /admin/password(.:format)      active_admin/devise/passwords#update
cancel_user_registration GET        /admin/cancel(.:format)        devise/registrations#cancel
       user_registration POST       /admin(.:format)               devise/registrations#create
   new_user_registration GET        /admin/sign_up(.:format)       devise/registrations#new
  edit_user_registration GET        /admin/edit(.:format)          devise/registrations#edit
                         PATCH      /admin(.:format)               devise/registrations#update
                         PUT        /admin(.:format)               devise/registrations#update
                         DELETE     /admin(.:format)               devise/registrations#destroy
Run Code Online (Sandbox Code Playgroud)

我希望管理仪表板可用/admin,但我希望用户管理部分可用/users.所以new_user_session/users/login代替/admin/login.

有人做到了吗?

kid*_*rew 5

事实证明,您可以通过从设计中省略ActiveAdmin来实现此目的.而不是这个:

Site::Application.routes.draw do
  devise_for :users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)
end
Run Code Online (Sandbox Code Playgroud)

做这个:

Site::Application.routes.draw do
  devise_for :users
  ActiveAdmin.routes(self)
end
Run Code Online (Sandbox Code Playgroud)