Redirect to z paramsami jako hash

To działa

 redirect_to "http://onet.pl?foo=bar"

A da się tak aby podać parametry jako hash? Coś w tym stylu?

 redirect_to "http://onet.pl", :foo => "bar"

mozesz napisac cos takiego:

def redirect_with_options( www_link, params) address = www_link + "?" + params.to_a.collect{|pair| pair.collect{|word| CGI::escape(word.to_s) }.join("=") }.join("&") redirect_to address end
pisane na szybko, więc uważaj
params ma być hashem, www_link - stringiem

Oj oj oj :slight_smile:

http://apidock.com/rails/ActionController/Base/url_for

I potem redirect_to(url_for(…))

Rozwiązanie z url_for nie bardzo bo wymaga parametrów :controller i :action i raczej służy do biegania po swojej aplikacji.
Chyba że wiesz jak to zmusić do działania ?

Przepraszam, masz racje, stazeje sie.

nie moje

[code]class Hash
def to_params
params = ‘’
stack = []

each do |k, v|
if v.is_a?(Hash)
stack << [k,v]
elsif v.is_a?(Array)
stack << [k,Hash.from_array(v)]
else
params << “#{k}=#{v}&”
end
end

stack.each do |parent, hash|
hash.each do |k, v|
if v.is_a?(Hash)
stack << ["#{parent}[#{k}]", v]
else
params << “#{parent}[#{k}]=#{v}&”
end
end
end

params.chop! # trailing &
params
end
end[/code]
i potem

redirect_to("http://www.wp.pl/?" + { :caca => "demona" }.to_params)

Oj panowie :).

[code=ruby]require “rack”
Rack::Utils.build_query(:foo => “1”, :bar => “2”)

=> “bar=2&foo=1”

Rack::Utils.build_nested_query(“foo” => %w(1 2 3), :bar => “…”) # dodane bodajże w rack 1.1.0

=> “bar=…&foo[]=1&foo[]=2&foo[]=3”[/code]

No tak mysallem ze gdzies napewno jest :wink:

Dzieki chłopaki o to mnie chodziło.

A właśnie znalazłem takie cuś w ActiveSupport

{"asd" => "123", "12333" => 3232}.to_query => "12333=3232&asd=123"