[RUBY-ON-RAILS] 이 레일에 루비의 쿼리 문자열 인 것처럼 문자열을 구문 분석
RUBY-ON-RAILS이 레일에 루비의 쿼리 문자열 인 것처럼 문자열을 구문 분석
나는이 같은 문자열을 가지고 :
"foo=bar&bar=foo&hello=hi"
레일합니까 루비는이 쿼리 문자열 인 것처럼 나는이 같은 해시를 얻을 수 있도록,이 구문을 분석하는 방법을 제공합니다 :
{
:foo => "bar",
:bar => "foo",
:hello => "hi"
}
아니면 내가 나 자신은 그것을 작성해야합니다?
문자열이 위의 URL에서 실제 쿼리 문자열하지만, 페이스 북 연결에서 쿠키에 저장하지 않고 문자열이 아닌 것을 바랍니다 참고.
해결법
-
==============================
1.대답은 당신이 사용하고 있는지 레일의 버전에 따라 달라집니다. 당신은 2.3 이상, PARAMS에 대한 사용 랙의 내장 파서를 사용하는 경우
대답은 당신이 사용하고 있는지 레일의 버전에 따라 달라집니다. 당신은 2.3 이상, PARAMS에 대한 사용 랙의 내장 파서를 사용하는 경우
Rack::Utils.parse_nested_query("a=2") #=> {"a" => "2"}
나이가 레일에있는 경우, 당신은 참으로 CGI :: 구문 분석을 사용할 수 있습니다. 주 당신이 당신이 얻고있는 데이터가 선택한 방법에 맞는지 여부를 확인해야하므로 모듈 간의 미묘한 방식으로 해시와 배열 다릅니다의 취급.
또한 랙 포함 할 수있다 ::의 Utils를 속기 액세스 할 수 있도록 클래스로.
-
==============================
2.그만큼
그만큼
CGI::parse("foo=bar&bar=foo&hello=hi")
당신을 제공합니다
{"foo"=>["bar"], "hello"=>["hi"], "bar"=>["foo"]}
-
==============================
3.편집 : 코멘트에 말했듯이, symolizing 키 누군가 당신을 다치게하려는 경우 아래 서버를 가져올 수 있습니다. 그와 함께 작업에 쉽게 물건을 만들기 때문에 나는 로우 프로파일 애플리케이션에서 작업 할 때 나는 아직도 그것을 많이 할하지만 높은 지분 애플 리케이션을 위해 더 이상하지 않을 것이다
편집 : 코멘트에 말했듯이, symolizing 키 누군가 당신을 다치게하려는 경우 아래 서버를 가져올 수 있습니다. 그와 함께 작업에 쉽게 물건을 만들기 때문에 나는 로우 프로파일 애플리케이션에서 작업 할 때 나는 아직도 그것을 많이 할하지만 높은 지분 애플 리케이션을 위해 더 이상하지 않을 것이다
당신이 원하는 결과를 얻기위한 열쇠를 상징하는 것을 잊지 마세요
Rack::Utils.parse_nested_query("a=2&b=tralalala").deep_symbolize_keys
이 동작은 중복 파괴적이다.
-
==============================
4.당신이 URL에 대한 이야기 경우이 매개 변수 그들에 대한 데이터를 얻을하는 데 사용되는
당신이 URL에 대한 이야기 경우이 매개 변수 그들에 대한 데이터를 얻을하는 데 사용되는
> request.url => "http://localhost:3000/restaurants/lokesh-dhaba?data=some&more=thisIsMore"
그런 다음 쿼리 매개 변수를 얻을 수 있습니다. 사용하다
> request.query_parameters => {"data"=>"some", "more"=>"thisIsMore"}
-
==============================
5.당신이 해시를 원하는 경우에 당신은 사용할 수 있습니다
당신이 해시를 원하는 경우에 당신은 사용할 수 있습니다
Hash[CGI::parse(x).map{|k,v| [k, v.first]}]
from https://stackoverflow.com/questions/2772778/parse-a-string-as-if-it-were-a-querystring-in-ruby-on-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일 3.0에서 f.error_messages (0) | 2020.02.16 |
---|---|
[RUBY-ON-RAILS] 어떻게 레일의 URL에서 쿼리 문자열을 얻을 수 있습니다 (0) | 2020.02.16 |
[RUBY-ON-RAILS] 어떻게 레일 콘솔에서 고안를 사용하여 사용자가 로그인하는? (0) | 2020.02.16 |
[RUBY-ON-RAILS] 어떻게 활동 지원의 핵심 확장자를 사용하는 (0) | 2020.02.16 |
[RUBY-ON-RAILS] 갑자기 작동하지 드롭 다운 부트 스트랩 트위터 (0) | 2020.02.15 |