我试图让rails根据子域转到不同的controller#action,这就是我目前在routes.rb中所拥有的
Petworkslabs::Application.routes.draw do
get '/', to: 'custom#show', constraints: {subdomain: '/.+/'}, as: 'custom_root'
get '/', to: "welcome#home", as: 'default_root'
end
rake 显示了我希望它采取的正确路线
rake routes
Prefix Verb URI Pattern Controller#Action
custom_root GET / custom#show {:subdomain=>"/.+/"}
default_root GET / welcome#home
但由于某种原因,我无法获得像 abc.localhost:3000 这样的请求来访问自定义控制器。它总是将它路由到welcome#home。有任何想法吗?我对 Rails 相当陌生,所以任何关于一般调试的提示也将不胜感激。
编辑:我使用调试器逐步完成了代码,这就是我发现的
(rdb:32) request.domain "abc.localhost" (rdb:32) request.subdomain "" (rdb:32) request.subdomain.present? 错误的
看起来出于某种原因,rails 认为子域不存在,即使它存在。我想知道是不是因为我正在做这个本地主机。