Rails:如何路由到特定域

时间:2017-03-25 09:38:50

标签: ruby-on-rails routing ruby-on-rails-5 rails-routing

我定义了以下路线:

constraints( subdomain: "abc" ) do
    resources :sites do
        resources :pages
    end
    resources :domains
end

所以我可以像这样访问一个页面:abc.example.com/sites/1/pages/2

我想将show PagesController a-different-domain.com/2行动的路由为可访问,如下所示:domain

我有很多域,一个域可以有很多页面。域名为%w(domains).each do |d| constraints( host: d.domain ) do get "/*structure" => "pages/dashboard/sites/pages#show" end end 列。这就是我认为可行的方法:

ANDROID_HOME

我收到以下错误:

  

未定义的方法`域' for" domains":String(NoMethodError)

你怎么能用Rails做到这一点?

1 个答案:

答案 0 :(得分:1)

您的代码存在的问题是%w(domains)["domains"]

你可以这样做:

# routes.rb
Domain.find_each do |d|
  constraints(subdomain: d.domain) do
    get "/*structure" => "pages/dashboard/sites/pages#show"
  end
end

有关详细信息:http://edgeguides.rubyonrails.org/routing.html#request-based-constraints