request.urlは私にこれを返します:http://localhost:3000/page?foo=bar。Rails - GETパラメータなしで現在のURLを取得する
http://localhost:3000/pageを取得するためのメソッドがありますか、またはパラメータを取り除くために文字列を解析する必要がありますか?
request.urlは私にこれを返します:http://localhost:3000/page?foo=bar。Rails - GETパラメータなしで現在のURLを取得する
http://localhost:3000/pageを取得するためのメソッドがありますか、またはパラメータを取り除くために文字列を解析する必要がありますか?
request.path
ホスト名が気にならない場合は、探しているものを返す必要があります。そうしないと、あなたは試してみてください:
url_for(:only_path => false, :overwrite_params=>nil)
私は次のようにします。
request.original_url.split('?').first
それはパスを再生成しないので、あなたは正確にエンドユーザーが自分のブラウザで見ているURL、マイナスのクエリを与えますパラメーター。
ニース!また、要求の厳しい 'request.url.split( '?')。first'が私のために働いていました。 – Franco
@Franco 'request.url'は非難されていますが、わかりません。 – thekingoftruth
これは 'request.referrer'でも使えるので、より柔軟です。 – steel
クエリパラメータなしでリクエストURLを取得する。
def current_url_without_parameters
request.base_url + request.path
end
私は再帰的パラメータの問題、/ controller/action?param = 1?param = 2?param = 3'でも実行しましたが、request.pathが優れていました。 –
上記の方法の問題は、同じ種類のリソース(たとえば、「/ news/post-name」と「/ blog-name/post-name」というラベルの付いたパブリケーションの場合は、 )、間違った経路を取り戻すことができます。 – thekingoftruth
@thekingoftruthそれは当てはまりますが、最も優先度の高いルートが使用されるので、それらを正しく注文してください。 – tadman