Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 如何将所有路由映射到Rails中的子域中_Ruby On Rails 3_Rails Routing - Fatal编程技术网

Ruby on rails 3 如何将所有路由映射到Rails中的子域中

Ruby on rails 3 如何将所有路由映射到Rails中的子域中,ruby-on-rails-3,rails-routing,Ruby On Rails 3,Rails Routing,我有一个实时Rails应用程序。现在,我想将它们全部重新路由到一个子域dev.mydomain.com 例如,当前路径mydomain.com/users/1应该变成dev.mydomain.com/users/1。我的网页中的所有链接也应该有效 我该怎么做 非常感谢 编辑:我之所以要这样做,是因为我想对访问者隐藏我的应用程序,并将他们重定向到其他登录页。您可以执行以下操作 在config/lib目录中创建一个名为subdomain.rb的文件,然后将其添加到其中 class Subdomain

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

例如,当前路径
mydomain.com/users/1
应该变成
dev.mydomain.com/users/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
    
  • 然后在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
    

    要运行我的应用程序,我倾向于使用,我也会推荐同样的应用程序

    你弄乱了术语路径和url。您想归档什么,查看:host参数hi,我之所以要这样做是因为我想对访问者隐藏我的应用程序,并将它们重定向到另一个登录页。
    dev.myomain.com
    mydomain.com
    是分开的rails应用程序吗?您的部署堆栈是什么?(Apache、nginx、thin、webrick?)没有。它们在同一个应用程序中。该应用程序处于隐藏模式,我只想让我的登录页向访问者公开
    dev.mydomain.com
    将向朋友和受邀访客展示该应用程序。