主机路由限制和url /路径助手

时间:2019-08-25 08:06:20

标签: ruby-on-rails

我有一个支持多个主机的Rails应用程序。如果要访问其他主机,则我们希望使用不同的路径来有效地使用相同的资源。

在我的routes.rb文件中,我这样做是这样的:

Rails.application.routes.draw do
  constraints host: "host1.local" do
    get '/foo', to: "things#new"
    resources :things 
  end

  constraints host: "host2.local" do
    get '/bar', to: "things#new"
    resources :things
  end
end

当我启动该网站并点击相应的URL时,这可以按预期工作。例如,由于约束原因,打http://host1.local/bar无效。

但是,我想要做的是能够在Rails中可用的各种url / path / etc帮助器中生成这些自定义路由,以避免重复我自己。例如,url_for的行为不像我期望的那样

>> app.url_for controller: things, action: new, host: 'host2.local'
=> 'http://host2.local/foo' # expecting /bar at end

这种智能的url /路径生成是可能的,还是约束仅用于限制传入请求,而在生成url /路径时被忽略?是否有针对其他方法的建议?

0 个答案:

没有答案