Ответ 1
чтобы создать допустимую строку запроса, вы можете использовать
params = {a: 1, b: [1,2]}.to_query
http://apidock.com/rails/Hash/to_query
http://apidock.com/rails/Hash/to_param
Я использую API, который ожидает, что я сделаю запросы в следующем формате:
?filter=value1&filter=value2
Однако я использую Active Resource, и когда я указываю хэш : params, я не могу сделать тот же параметр дважды отображаемым в URL-адресе, который, я считаю, верен. Поэтому я не могу этого сделать:
:params => {:consumer_id => self.id, :filter => "value1", :filter => "value2" }
, потому что второй индекс фильтра хеша будет проигнорирован.
Я знаю, что могу передать массив (который, я считаю, правильный способ сделать это) следующим образом:
:params => {:consumer_id => self.id, :filter => ["value1","value2"] }
Будет создан URL-адрес:
?filter[]=value1&filter[]=value2
Который мне кажется одобренным, но API не принимает его. Поэтому мой вопрос:
Каков правильный способ передачи параметров с несколькими значениями? Является ли это языком специфическим? Кто решает это?
чтобы создать допустимую строку запроса, вы можете использовать
params = {a: 1, b: [1,2]}.to_query
http://apidock.com/rails/Hash/to_query
http://apidock.com/rails/Hash/to_param
http://guides.rubyonrails.org/action_controller_overview.html#hash-and-array-parameters
Попробуйте: filter [] = > значение,: filter [] = > значение2