微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 用于通配符子域的Ruby on Rails路由到控制器/操作

我动态创建username.users.example.com形式的URL:
bob.users.example.com
tim.users.example.com
scott.users.example.com

所有* .users.example.com请求都应转到特定的控制器/操作.如何在routes.rb中指定它?

对www.example.com的所有其他请求都会转到routes.rb文件中的正常路由列表.

更新:我看了railscast about subdomains,它显示了下面的代码,似乎正是我需要的(改变了控制器和子域):

match '',to: 'my_controller#show',constraints: {subdomain: /.+\.users/}

问题是它只匹配根URL.我需要这个以匹配每个可能的URL与* .users子域.显然我会把它放在我的routes.rb文件的顶部.但是如何指定一条全能路线呢?它只是’*’吗?要么 ‘/*’?

解决方法

我想,你只需要做以下事情:

在lib中创建一个类子域:

class Subdomain  
    def self.matches?(request)  
      request.subdomain.present? && request.host.include?('.users')
    end  
  end

在你的路线:

constraints Subdomain do
  match '',to: 'my_controller#show'
end

原文地址:https://www.jb51.cc/ruby/269716.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐