Ruby on Rails - 从某些路由中排除单个域

Ruby on Rails - Excluding a single domain from some routes

在Rails路由中,通常我们做constraints: {domain: "example.com" } 如果我们想指定example.com可以拥有的特定路由。但是我该如何扭转这种情况,以便每个人都可以访问它,除了 example.com

您可以创建自定义约束。如果需要,请添加更多排除域。

class DomainConstraint
  def matches?(request)
    excluded_hosts = ['example.com']
    excluded_hosts.exclude?(request.host)
  end
end

这样使用:

constraints DomainConstraint.new do
  ..
end

https://guides.rubyonrails.org/routing.html#advanced-constraints