2011-02-09 3 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 ('?'). 첫 번째는 나를 위해 일했다. – Franco

+0

@Franco'request.url'은 더 이상 사용되지 않습니다.하지만 잘 모르겠습니다. – thekingoftruth

+1

이것은 'request.referrer'에서도 잘 작동하므로보다 유연합니다. – steel

8

쿼리 매개 변수없이 요청 URL을 가져 오려면.

def current_url_without_parameters 
    request.base_url + request.path 
end 
관련 문제