2010-07-15 8 views
0

Dire que j'ai une chaîne qui est une URL avec params en elle:Rails: obtenir params d'une chaîne

http://www.google.com/search?hl=en&client=firefox-a&hs=zlX&rls=org.mozilla%3Aen-US%3Aofficial&q=something&cts=1279154269301&aq=f&aqi=&aql=&oq=&gs_rfai= 

Comment puis-je former un tableau de tous les params de la chaîne? Je connais le tableau params auquel vous pouvez accéder mais je ne parle que de n'importe quelle chaîne arbitraire, et non d'une partie de la requête.

Répondre

2

Je ne sais pas s'il y a un raccourci rails, mais:

url = 'http://www.google.com/search?hl=en&client=firefox-a&hs=zlX&rls=org.mozilla%3Aen-US%3Aofficial&q=something&cts=1279154269301&aq=f&aqi=&aql=&oq=&gs_rfai=' 

params = CGI.parse(URI.parse(url).query) 

#=> {"hs"=>["zlX"], "oq"=>[""], "cts"=>["1279154269301"], "aqi"=>[""], "rls"=>["org.mozilla:en-US:official"], "hl"=>["en"], "aq"=>["f"], "gs_rfai"=>[""], "aql"=>[""], "q"=>["something"], "client"=>["firefox-a"]} 

params = CGI.parse(url) 

est presque là, vous donne:

#=> {"hs"=>["zlX"], "oq"=>[""], "cts"=>["1279154269301"], "aqi"=>[""], "rls"=>["org.mozilla:en-US:official"], "aq"=>["f"], "http://www.google.com/search?hl"=>["en"], "gs_rfai"=>[""], "aql"=>[""], "q"=>["something"], "client"=>["firefox-a"]} 
Questions connexes