Rails中命名空间路由的单独域4

我正在开发一个Rails 4应用程序。 该应用程序的一部分是必须从单独的域访问的客户门户。

通过导航到domain.com/cp我可以正常工作。 路由使用命名空间控制器:

 namespace :cp do get :dashboard, to: 'dashboard#index', path: '' ... end 

我应该如何设置DNS记录并更改路由定义,以便另一个域cpdomain.com正确指向domain.com/cp (无重定向)。

谢谢。

这个答案对于rails路由问题很有用:

Rails路由以在单个应用程序上处理多个域

缩短:

1)在lib / domain_constraint.rb中定义自定义约束类:

 class DomainConstraint def initialize(domain) @domains = [domain].flatten end def matches?(request) @domains.include? request.domain end end 

2)使用新的块语法在路由中使用类

 constraints DomainConstraint.new('mydomain.com') do root :to => 'mydomain#index' end root :to => 'main#index' 

或者老式的选项语法

 root :to => 'mydomain#index', :constraints => DomainConstraint.new('mydomain.com')