我目前在开发 Ruby on Rails 应用程序时遇到了一个主要问题。我以前从未使用过子域,但自从这个项目以来,我需要这样做。
我通过 scope
添加了每个子域约束,但路由不起作用。这是我的 routes.rb
:
scope module: :frontend, subdomain: ':company_id' do
resources :RESOURCE_NAME do
scope module: 'MODULE_NAME' do
[...] # Some simple routes
end
end
[...]
end
所以,我跳过了路由,因为它们并不是很重要,它们只是简单的get
和post
事情。
现在,问题是,每次我调用 *_path
方法时,我都不会被重定向到子域(从那时起,lvh.me 一切正常)。每个子域(我还有一些)在我直接访问它们时都在工作,但在我访问主页时也是如此(http://lvh.me:3000/
)。子域范围 launchpad
显示给我,而不是我在 routes.rb
中指定的直接根。
现在我要问的是,如何解决这个问题。
最佳答案
在你的 Controller 中很简单,只需执行以下操作
unless request.subdomains.any?
redirect_to subdomain: 'www'
else
...
# there is no subdomain
end
关于ruby-on-rails - 子域不适用于本地 rails env,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28380518/