在Rails中的子域中提供仪表板

时间:2018-04-21 11:13:14

标签: ruby-on-rails subdomain

我正在使用多租户和公寓宝石构建应用程序 验证电子邮件后,用户将被重定向到其子域

我想要做的是为单个子域上的管理员提供帖子登录仪表板,让我们说app.domain.com而不是他们在注册时请求的子域名。

因此,他们的信息中心位于app.domain.com,他们的主应用将位于他们在注册时选择的子域。

有没有人能指出我正确的方向?

这是我目前在路线上的做法

require 'subdomain'
  constraints(Domain) do
    root :to => "pages#home"
  end

  constraints(Subdomain) do
    root :to => "pages#store"
  end

LIB / subdomain.rb

class Subdomain
  def self.matches?(request)
    request.subdomain.present? && request.subdomain != "www"
  end
end

class Domain
  def self.matches?(request)
    !request.subdomain.present? or request.subdomain == "www"
  end
end

1 个答案:

答案 0 :(得分:3)

这样做的一种方法是将业务逻辑分离为面向公众和面向管理的属性。如果你这样做,那么你可以轻松实现你想要的。另一种方法是创建一个多引擎rails应用程序,您可以将管理员和公共事物保存在单独的引擎中。在我看来,这两种方式都是可以接受的。如果您想了解有关多引擎应用程序的更多信息,那么您可以阅读这个很棒的示例

https://github.com/taskrabbit/rails_engines_example