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

时间:2014-06-09 14:12:32

标签: ruby-on-rails ruby-on-rails-4

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

导航到domain.com/cp,我的一切工作正常。路由使用命名空间控制器:

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

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

感谢。

1 个答案:

答案 0 :(得分:4)

这个答案对于铁路路线问题非常有用:

Rails routing to handle multiple domains on single application

缩短:

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')