Rails activeadmin:如何让activeadmin为每个命名空间设置重定向路径?

时间:2018-02-18 13:39:59

标签: ruby-on-rails activeadmin

我已阅读this question并已尝试过。实际上,最终的路线是两条不同的路线。就我而言,代码就像

devise_for: users, ActiveAdmin :: Devise.config.merge ({path:: user_belilah})
devise_for: admin_users, ActiveAdmin :: Devise.config

代码生成user_belilahadmin

的路由

当我通过user_belilah路线登录时,该网页会重定向到admin路径。

正如我写的那样

  config.default_namespace = :user_belilah
  config.namespace :admin do |admin|
    admin.site_title = 'Admin Site'
    admin.authentication_method = :authenticate_admin_user!
    admin.current_user_method = :current_admin_user
    admin.logout_link_path = :destroy_admin_user_session_path
    user.root_to = 'dashboard#index'
  end

  config.namespace :user_belilah do |user|
    user.site_title = 'User Site'
    user.authentication_method = :authenticate_user!
    user.current_user_method = :current_user
    user.logout_link_path = :destroy_user_session_path
    user.root_to = 'products#index'
  end

我为user_belilah编写了default_namespace,并为每个命名空间创建了.root_to。然后当我登录时,我成功地重定向到user_belilah / dashboard。当我通过路径管理员再次登录时,该页面将重定向到user_belilah

如何让activeadmin有两个重定向路径? 似乎只有其中一个是重定向路径

1 个答案:

答案 0 :(得分:1)

我找到了答案,我只是编写代码来覆盖after_sign_in_path_for中的方法application_controller.rb,就像这样

def after_sign_in_path_for(resource)
    if resource.class == AdminUser
      admin_dashboard_path
    elsif resource.class  == User
      root_path
    end
  end

所以activeadmin在我们登录后有两个重定向根