簡體   English   中英

Rails Devise和ActiveAdmin單一模型路由

[英]Rails Devise & ActiveAdmin single model routes

我正在使用Devise和ActiveAdmin,我讓他們通過is_admin標志共享一個users表。 我的路線文件如下所示:

Site::Application.routes.draw do
  devise_for :users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)
end

這給了我這些路線

                 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

我希望管理儀表板可以從/admin ,但我希望用戶管理部分可以從/users 所以new_user_session將在/users/login而不是/admin/login

有人做到了嗎?

事實證明,您可以通過從設計中省略ActiveAdmin來實現此目的。 而不是這個:

Site::Application.routes.draw do
  devise_for :users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)
end

做這個:

Site::Application.routes.draw do
  devise_for :users
  ActiveAdmin.routes(self)
end

Active Admin本身可以配置為/

# config/initializers/active_admin.rb
ActiveAdmin.setup do |config|
  config.default_namespace = false
  # ...
end

同時,可以將各個頁面配置為自定義命名空間:

# app/admin/dashboard.rb
ActiveAdmin.register_page 'Dashboard', namespace: :admin do
  # ...
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM