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")