복붙노트

[RUBY-ON-RAILS] 어떻게 레일의 URL에서 쿼리 문자열을 얻을 수 있습니다

RUBY-ON-RAILS

어떻게 레일의 URL에서 쿼리 문자열을 얻을 수 있습니다

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

나는 URL 문자열을 전달하려는 :

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

어떻게 ID와 EMPID를받을 수 있나요?

해결법

  1. ==============================

    1.당신이 문자열에서 URL이있는 경우 다음 떨어져 당겨 URI 및 CGI를 사용합니다 :

    당신이 문자열에서 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"
    

    정규 표현식으로 자신을 시도하고 그것을하지 않습니다,이 물건에 대한 표준 라이브러리를 사용하십시오.

    또한 아래의 랙 :: Utils.parse_query에 대한 QUV의 의견을 참조하십시오.

    참고 :

  2. ==============================

    2.

    vars = request.query_parameters
    vars['id']
    vars['empid']
    

    기타..

  3. ==============================

    3.루비 레일에 컨트롤러 메소드에서 URL 매개 변수는 키가 매개 변수 이름입니다 해시라고 PARAMS에서 사용할 수 있지만, 루비 등의 "상징"(예. 콜론 접두어). 그래서 예에서 PARAMS [: ID가] [: EMPID] 6 동일 할 4 params가 동일합니다.

    루비 레일에 컨트롤러 메소드에서 URL 매개 변수는 키가 매개 변수 이름입니다 해시라고 PARAMS에서 사용할 수 있지만, 루비 등의 "상징"(예. 콜론 접두어). 그래서 예에서 PARAMS [: ID가] [: EMPID] 6 동일 할 4 params가 동일합니다.

    나는 좋은을 읽는 것은이 같은 기본 사항을 포함해야한다 튜토리얼 레일 추천 할 것입니다. 여기에 하나의 예이다 -이 더 많이 출현합니다 구글 :

  4. ==============================

    4.

    Rack::Utils.parse_nested_query("a=2") #=> {"a" => "2"}
    

    인용 : 이 레일에 루비의 쿼리 문자열 인 것처럼 문자열을 구문 분석

    구문 분석 쿼리 문자열 레일 컨트롤러가 수행 방법. 중첩 일반적으로이 릴 사람과 같은 양식 필드 이름을 통해 쿼리 : 이름 = "멋진 [맥주] [칩]"# => "? 멋진 % 5Bbeer % 5D % 5Bchips % 5D = 냉각 ','얻을 슬라이스 앤 다이 싱 '굉장한 해쉬 { "최고"= "{"맥주 "="{ "칩"=> 닐}}}

    http://rubydoc.info/github/rack/rack/master/Rack/Utils.parse_nested_query https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L90

  5. ==============================

    5.이것은 최선의 방법은 아니지만, 그것은 작동합니다 :

    이것은 최선의 방법은 아니지만, 그것은 작동합니다 :

    request.query_string.split(/&/).inject({}) do |hash, setting|
      key, val = setting.split(/=/)
      hash[key.to_sym] = val
      hash
    end
    

    (: 이름 => 값)이 모든 GET의 PARAMS와 해시를 반환합니다. 아니면 그냥 request.query_string 방법을 사용하여, 당신은 당신의 GET의 PARAMS을 취득하는 형식에 따라 달라집니다. 또한 당신은 레이크 보석에서 request.query_params를 사용할 수 있습니다.

  6. from https://stackoverflow.com/questions/7316656/how-to-get-a-query-string-from-a-url-in-rails by cc-by-sa and MIT license