基于子域的活动管理隐藏菜单

时间:2017-12-22 07:44:39

标签: ruby-on-rails ruby activeadmin

有一种方法可以隐藏基于子域的菜单吗?

我试图在ApplicationController中获取请求中的子域并将其存储为要在资源中使用的全局变量,但是不起作用。

3 个答案:

答案 0 :(得分:1)

以下示例如下

require 'domainatrix'
url = Domainatrix.parse("#{request.host}") #=> test.example.com, will change based on request
subdomain = url.subdomain           # => "test.example"
if subdomain == 'test.example'
   // Your code staff like hiding menu
elsif subdomain == 'test1.example'
   // Your code staff like hiding menu
 // more ...
else
  // Show menu
end

我认为会有所帮助

答案 1 :(得分:1)

您可以在控制器中使用request.subdomains返回当前请求子域的数组 subdomain docs了解更多信息

答案 2 :(得分:1)

documentation有一个如何执行此操作的示例。

使用您提供的信息,这可能会解决您的问题:

ActiveAdmin.register Custom1 do
  menu parent: "basic_entities", if: proc { request.subdomain == "foo" }
end