我有一个网址https://www.openhub.net这是我的轨道4.2.7应用程序。我在另一个系统上有一个单独的子域,它是https://code.openhub.net/。如果您碰到第二个链接,这会将您重新路由到停用的页面。什么是code.openhub.net
网址将被分解,将被重新路由到openhub.net
。所以我想要做的是,当有人试图去code.openhub.net
我的轨道应用程序有openhub.net
将提供静态页面。问题是我无法概念化这将如何工作。例如,下面是路径下的rails文档片段。如何在route.rb中将子域路由到rails应用程序?
3.9基于请求的约束 您也可以根据返回字符串的请求对象上的任何方法约束路由。
您指定的请求,基于约束您指定的 段约束以同样的方式:通过调用Request对象 上的方法具有相同的名称作为
get 'photos', to: 'photos#index', constraints: { subdomain: 'admin' }
You can also specify constraints in a block form:
namespace :admin do
constraints subdomain: 'admin' do
resources :photos
end
end
请求限制工作散列键,然后将返回值 与散列值进行比较。因此,约束值应该与相应的Request对象方法返回类型相匹配。例如: 约束条件:{subdomain:'api'}将匹配api子域名为 ,但使用符号约束:{subdomain :: api}将不会是 ,因为request.subdomain返回'api'作为String。
我明白这份文件的意思,但是当我尝试将这些代码付诸实践时,我很难过。这里是我的routing.rb
文件:
get '???', to: '???', constraints: { subdomain: 'code' }
据我了解,网址中的子域名限制部分将是代码,但将get
和to
是什么?我怎么知道会得到什么?我是否简单地将get code.openhub.net
替换为CodeController#index
?有没有人试图做过这样的事情?从文档中我看到请求对象有一个我可以调用的方法original_url
。我可以利用这个方法吗?任何帮助将不胜感激。
- 一点题外话,我注意到,子域名是不是这应该在这里工作Rails Request Object
感谢您的帮助! –