2011-02-09 38 views

答えて

43

request.pathホスト名が気にならない場合は、探しているものを返す必要があります。そうしないと、あなたは試してみてください:

url_for(:only_path => false, :overwrite_params=>nil) 
+1

私は再帰的パラメータの問題、/ controller/action?param = 1?param = 2?param = 3'でも実行しましたが、request.pathが優れていました。 –

+0

上記の方法の問題は、同じ種類のリソース(たとえば、「/ news/post-name」と「/ blog-name/post-name」というラベルの付いたパブリケーションの場合は、 )、間違った経路を取り戻すことができます。 – thekingoftruth

+0

@thekingoftruthそれは当てはまりますが、最も優先度の高いルートが使用されるので、それらを正しく注文してください。 – tadman

8

私は次のようにします。

request.original_url.split('?').first 

それはパスを再生成しないので、あなたは正確にエンドユーザーが自分のブラウザで見ているURL、マイナスのクエリを与えますパラメーター。

+0

ニース!また、要求の厳しい 'request.url.split( '?')。first'が私のために働いていました。 – Franco

+0

@Franco 'request.url'は非難されていますが、わかりません。 – thekingoftruth

+1

これは 'request.referrer'でも使えるので、より柔軟です。 – steel

8

クエリパラメータなしでリクエストURLを取得する。

def current_url_without_parameters 
    request.base_url + request.path 
end 
関連する問題