development

Rails의 URL에서 쿼리 문자열을 얻는 방법

big-blog 2021. 1. 9. 11:29
반응형

Rails의 URL에서 쿼리 문자열을 얻는 방법


Rails에서 전달 된 URL 문자열에서 쿼리 문자열을 얻는 방법이 있습니까?

URL 문자열을 전달하고 싶습니다.

http://www.foo.com?id=4&empid=6

어떻게 얻을 수 idempid?


문자열에 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]동일 것 4params[: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

이것은 모든 GETparams ( :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

반응형