如何在rails中获取类似support.appname.com的网址?

时间:2017-09-18 11:17:26

标签: ruby-on-rails ruby routes

目前default_url_option设置为

Rails.application.routes.default_url_options[:host] = 'app.lvh.me:3000'

关于开发环境。

我在这里遇到的问题是获得support.appname.com。

尝试过的解决方案

get 'support.appname.com' => 'supports#index'

但它按预期返回app.lvh.me:3000/support.appname.com。 有没有办法让support.appname.com或support.app.lvh.me:3000(生产中的support.appname.com)重定向到SupportsController #index?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您想要的是在代码中启用子域支持。您可以在routes.rb文件中尝试以下操作。

resources :supports, constraints: { subdomain: 'support' }

答案 1 :(得分:0)

routes.rb添加

class Subdomain
  def self.matches?(request)
    (request.subdomain.present?) && (request.subdomain(1) == "support")
  end
end

Rails.application.routes.draw do
  constraints(AppSubdomain) do
   get 'support' => "support#index"
 end
end

现在,如果您访问support.appname.com/support,它将被路由到index控制器的Support操作