2009-09-25 4 views
11

레일을 실행하지 않는 다른 서버를 가리키는 내 레일 앱 내에 URL을 구성하고 싶습니다. url_for을 사용하면 거의 필자의 요구 사항을 충족 시키지만 필요하지 않은 컨트롤러 키 (외부 사이트의 최상위 페이지로 리디렉션)가 필요합니다.레일에 외부 URL 생성하기

내가 이것을하고 싶은 이유는 내가 인자의 해시 (일부는 런타임에 결정됨)가있는 URL을 깨끗하게 구성하기 위해서입니다.

+1

꼭 구글 사랑 - 당신은 당신의 질문을 한 후 1 시간, 그것은을위한 6 결과입니다 '레일스가 외부 URL을 생성합니다'. – nfm

답변

3

URI::HTTP에 대해 어떻게 생각하십니까?

+1

불행히도 내가 선호했던 것처럼 쿼리 문자열을 전달할 수는 없지만 충분히 가깝습니다. 나는'to_s' 메쏘드로'HTTPS :: build'를 사용하면 https uri를 반환하는 반면,'request_uri' 메쏘드를 사용하면 http uri를 리턴하는 것이 조금 이상합니다. –

+0

해시 문제에 대한 쉬운 해결책을 모릅니다. 중첩 된 매개 변수가 필요하지 않으면이 작업을 수행하는 간단한 함수를 만들 수 있습니다. URI :: HTTPS.request_uri() 함수는 경로와 쿼리 문자열 만 반환합니다. 전에는 모두 빠져 있습니다. Rails 콘솔에서 쉽게 시도 할 수 있습니다. – Roman

26

당신은 뭔가이 같은 어쩌면 URL 인코딩 등의 처리됩니다있는 레일에 해시에 to_query를 호출 할 수

params = { 
    :a => "http://google.com", 
    :b => 123 
} 
url = "http://example.com?#{params.to_query}"