有没有办法以干净的方式选择性地替换 Rails URL 中的参数和主机名?
背景:
如果当前页面不规范,我需要<link rel="canonical" href="http://...">
在我的应用程序中生成链接(例如,URL 中存在额外的参数,或者主机名可能是 i18n 子域,例如es.mysite.com
)
我喜欢能够用来url_for(params.except(:foo))
干净地删除参数;这似乎可以智能地使用我的路由来正确调整 URL,我觉得这是在将来 URL 或参数更改时防止损坏的最防弹方法。
但是对于修复主机名,除了在字符串级别操作和使用正则表达式之外,我没有看到一个很好的干净方法来直接替换(例如)es.mysite.com
用。mysite.com
手动解析字符串并不是世界末日,但我很高兴得知有一种方法可以执行以下操作:url_for(params.except(:foo), with_host: "mysite.com")