Rails url_for при передаче вложенного хеша параметров - PullRequest
0 голосов
/ 21 апреля 2011

Я хочу сделать что-то вроде следующего:

# /app/helpers/application_helper.rb
def custom_filter_url(additional_params={})
  new_params = params.clone
  new_params[:filter] ||= {}
  new_params[:filter] = new_params[:filter].merge(additional_params)
  url_for(new_params)
end

В представлении (например, http://example.com/things?filter%5Bfoo%5D=bar) я хотел бы следующее:

<%= link_to "Bar", custom_filter_url(:foo => 'different') %>

Для рендеринга:

http://example.com/things?filter%5Bfoo%5D=different

Однако вместо этого я получаю:

http://example.com/things?filter[foo]=different

По-видимому, метод url_for не полностью кодирует вложенные параметры hash / array. Как мне заставить это сделать, или есть лучший способ сделать это?

...