Ruby on Rails보기에서 현재 절대 URL 을 얻으려면 어떻게 해야합니까?
는 request.request_uri
단지 상대적인 반환 URL을 .
답변
Rails 3.2 또는 Rails 4+
request.original_url
현재 URL을 얻는 데 사용해야 합니다.
이 메소드는 original_url 메소드 에 설명되어 있지만 궁금한 점은 다음과 같습니다.
def original_url
base_url + original_fullpath
end
레일 3의 경우 :
당신은 쓸 수 "#{request.protocol}#{request.host_with_port}#{request.fullpath}"
있기 때문에, request.url
지금은 사용되지 않습니다.
레일 2의 경우 :
request.url
대신 쓸 수 있습니다 request.request_uri
. 이것은 프로토콜 (일반적으로 http : //)과 호스트 및 request_uri를 결합하여 전체 주소를 제공합니다.
답변
나는 Ruby on Rails 3.0 방법이 지금이라고 생각합니다 request.fullpath
.
답변
당신은 사용할 수 있습니다 url_for(only_path: false)
답변
사용 중지 경고 : #request_uri 사용은 사용되지 않습니다 . 대신 전체 경로를 사용하십시오.
답변
당신이 사용하는 경우 레일 3.2 또는 레일 (4) 당신이 사용해야 request.original_url
현재의 URL을 얻을 수 있습니다.
이 방법에 대한 설명서는 http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-original_url에 있지만 궁금한 경우 구현은 다음과 같습니다.
def original_url
base_url + original_fullpath
end
답변
ApplicationController 에이 current_url 메소드를 추가 하여 현재 URL을 리턴하고 다른 매개 변수에서 병합 할 수 있습니다.
# https://x.com/y/1?page=1
# + current_url( :page => 3 )
# = https://x.com/y/1?page=3
def current_url(overwrite={})
url_for :only_path => false, :params => params.merge(overwrite)
end
사용법 예 :
current_url --> http://...
current_url(:page=>4) --> http://...&page=4
답변
Ruby on Rails 3의 경우 :
request.url
request.host_with_port
디버거 세션을 시작하고 요청 객체를 쿼리했습니다.
request.public_methods