如何将所有路由映射到Rails中的子域

时间:2012-05-15 14:12:51

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

我有一个实时的Rails应用程序。现在我想将它们重新路由到子域dev.mydomain.com。

例如,当前路径mydomain.com/users/1应该变为dev.mydomain.com/users/1。我页面中的所有链接也应该有效。

我该怎么做?

非常感谢。

修改:我之所以这样做是因为我想隐藏访问者的应用,并将其重定向到其他目标网页。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作

  1. 在config / lib目录中创建一个名为subdomain.rb的文件,然后将其添加到其中

    class Subdomain
        def self.matches?(request)
            if request.subdomain == "www" || request.subdomain.blank? || request.subdomain.empty? || request.subdomain.nil?
                false
            else
                true
            end
        end
    end
    
  2. 然后在你的routes.rb中你可以这样做

        require 'subdomain'
    
        DemoApp::Application.routes.draw do
    
            constraints(Subdomain)  do
                constraints(:subdomain => 'dev') do
                    resources :users
                    root :to => "someother#page"
                end
            end
    
            root :to => "default#index"
    
            # and any other routes you would like to expose to www or no subdomain.
        end
    

    要运行我的应用,我倾向于使用pow.cx,我会推荐相同的。