rails 3 - 一个应用程序,多个域,如何为其中一个域实现不同的“根”路由?

时间:2011-06-17 21:36:32

标签: ruby-on-rails routes

几个不同的域名指向heroku上的我的应用程序,例如foo.com和bar.com都指向该应用程序。 (我们托管专门的博客页面,foo.com是我们创建网页的用户使用的域名,bar.com是博客页面所在的“面向公众”的域名。)

所有用户编辑页面都有Devise身份验证,foo.com上的“root”是用户的仪表板页面。登录用户可以在foo.com/reviewpage/USERID

预览他们的博客页面

每个用户帐号还有一个唯一的“友好网址名称”,例如“acme-inc-dallas-tx”

在面向公众的网页bar.com上(但只有这一个域名),我需要以某种方式映射

http://bar.com/friendly-url-name to:controller => mycontroller,:action => myaction

假设这意味着我需要将bar.com(但仅限bar.com)上的“root”重新映射到查找相应页面并显示它的方法“find_friendly_url”。

如果这是正确的继续进行方式...我将如何为仅有一个指向我的应用的域重新映射“root”?

1 个答案:

答案 0 :(得分:9)

我通常按以下步骤进行:

constraints(Subdomain) do
  match "/" => "home#admin"
end

match "/" => "home#standard" 

或者:

match "/" => "home#admin", :constraints => {:subdomain => "admin"}

match "/" => "home#standard" 

创造了:

/(.:format) {:action=>"admin", :subdomain=>"admin", :controller=>"home"}
root  /(.:format) {:action=>"standard", :controller=>"home"}

使用相同的逻辑可以创建仅适用于所需子域的路径。