0

我致力于为我的电子商务网站制作多个子域功能。到目前为止,我已经可以为每个用户分配一个 ':subdomain' 属性,并在类似 'subdomain.example.com' 上显示他们的网站。

但是,我无法从“subdomain.example.com”返回到“example.com”,因为“root_path”导致的不是“example.com”而是“subdomain.example.com”。

routes.rb 文件:

constraints(Subdomain) do
  match "/" => 'contributors#show'
end

root :to => "items#index"

Subdomain 类来自下面的“domains.rb”文件。

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

贡献者#show

<%= link_to 'Home', root_path # this leads to contributor#show. wanna make it to index#show. %>

欢迎任何帮助。谢谢。

4

2 回答 2

2

你试过root_url(:subdomain => false)吗?这会剥离子域的链接,应该做你想做的事。

于 2014-01-10T09:49:48.263 回答
0

Rails 采用 routes.rb 文件中定义的第一个匹配路径。如果您在子域上,则约束匹配并且匹配“/”匹配作为根路径。尝试将 "root :to => 'items#index'" 移动到您的 routes.rb 文件的顶部。

于 2013-09-12T09:54:11.530 回答