我有一个支持多个主机的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 /路径时被忽略?是否有针对其他方法的建议?