Rails의 URL에서 쿼리 문자열을 얻는 방법
Rails에서 전달 된 URL 문자열에서 쿼리 문자열을 얻는 방법이 있습니까?
URL 문자열을 전달하고 싶습니다.
http://www.foo.com?id=4&empid=6
어떻게 얻을 수 id
와 empid
?
문자열에 URL이있는 경우 URI와 CGI를 사용하여 분리합니다.
url = 'http://www.foo.com?id=4&empid=6'
uri = URI.parse(url)
params = CGI.parse(uri.query)
# params is now {"id"=>["4"], "empid"=>["6"]}
id = params['id'].first
# id is now "4"
이 작업을 위해 표준 라이브러리를 사용하십시오. 정규 표현식으로 직접 시도하지 마십시오.
Rack::Utils.parse_query
아래 에 대한 Quv의 의견도 참조하십시오 .
참조 :
Ruby on Rails 컨트롤러 메소드에서 URL 매개 변수는라는 해시에서 사용할 수 있습니다 params
. 여기서 키는 매개 변수 이름이지만 Ruby "기호"(예 : 콜론 접두사)로 사용할 수 있습니다. 귀하의 예제에서 그래서, params[:id]
동일 것 4
과 params[:empid]
동일 것이다 6
.
이와 같은 기본 사항을 다루는 좋은 Rails 튜토리얼을 읽는 것이 좋습니다. 다음은 한 가지 예입니다. Google은 훨씬 더 많이 표시됩니다.
vars = request.query_parameters
vars['id']
vars['empid']
기타..
Rack::Utils.parse_nested_query("a=2") #=> {"a" => "2"}
인용 출처 : Ruby on Rails에서 쿼리 문자열 인 것처럼 문자열 구문 분석
Rails 컨트롤러가 수행하는 방식으로 쿼리 문자열을 구문 분석합니다. 일반적으로 다음과 같은 양식 필드 이름을 통해 중첩 된 쿼리 : name="awesome[beer][chips]" # => "?awesome%5Bbeer%5D%5Bchips%5D=cool"
, 멋진 해시로 '슬라이스 및 다이 싱'을 가져옵니다.{"awesome"=>{"beer"=>{"chips"=>nil}}}
http://rubydoc.info/github/rack/rack/master/Rack/Utils.parse_nested_query https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L90
이것은 최선의 방법은 아니지만 작동합니다.
request.query_string.split(/&/).inject({}) do |hash, setting|
key, val = setting.split(/=/)
hash[key.to_sym] = val
hash
end
이것은 모든 GET
params ( :name => value
) 와 함께 해시를 반환 합니다. 또는 매개 변수 request.query_string
를 가져올 형식에 따라 방법을 사용 하십시오 GET
. 또한 gem request.query_params
에서 사용할 수 있습니다 rake
.
참조 URL : https://stackoverflow.com/questions/7316656/how-to-get-a-query-string-from-a-url-in-rails
'development' 카테고리의 다른 글
대소 문자를 구분하지 않음 std :: string.find () (0) | 2021.01.09 |
---|---|
detailTextLabel이 보이지 않는 이유는 무엇입니까? (0) | 2021.01.09 |
파이썬에서 setattr () 사용 (0) | 2021.01.09 |
출력을 변수로 업데이트 (0) | 2021.01.09 |
Pandas Merge-열 중복을 방지하는 방법 (0) | 2021.01.09 |