如何在Rails 3中设置具有特定子域的路由?

时间:2013-06-07 12:19:14

标签: ruby-on-rails-3 routes

我试图在rails中设置两个不同的路由,每个路由链接到不同的子域

这就像我想做的事情

match "/"  => "first_app#index",
              as => :first_app_root, 
              :subdomain => 'application' 

match "/"  => "second_app#index",
              :as => :second_app_root,  
              :subdomain => 'another_application' 

我想得到的结果当然是application.my_website指向FirstAppController的索引操作,another_application.my_website.dev指向SecondAppController的索引操作。

同样,first_app_root_urlsecond_app_root_url辅助函数应该使用正确的子域创建网址

这可能吗?

1 个答案:

答案 0 :(得分:1)

如果你想用匹配来做这件事,你应该可以用以下语句来做。

match "/" => "first_app#index", :constraints => {:subdomain => "application"}
match "/" => "second_app#index", :constraints => {:subdomain => "another_application"}

但更清洁的方式可能是

constraints :subdomain => "application" do
  # add your routes normally
end

constraints :subdomain => "another_application" do
  # add your routes normally
end

文档:http://guides.rubyonrails.org/routing.html#segment-constraints