ruby-on-rails – 用于通配符子域的Ruby on Rails路由到控制器/
发布时间:2020-12-17 04:39:50 所属栏目:百科 来源:网络整理
导读:我动态创建username.users.example.com形式的URL: bob.users.example.comtim.users.example.comscott.users.example.com 所有* .users.example.com请求都应转到特定的控制器/操作.如何在routes.rb中指定它? 对www.example.com的所有其他请求都会转到routes
我动态创建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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |