Rails - параметр с несколькими значениями в URL при использовании API через Active Resource - PullRequest
14 голосов
/ 15 марта 2012

Я использую 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 не принимает его.Итак, мой вопрос:

Как правильно передать параметры с несколькими значениями?Это специфический язык?Кто решает это?

Ответы [ 2 ]

6 голосов
/ 15 марта 2012

http://guides.rubyonrails.org/action_controller_overview.html#hash-and-array-parameters

Попробуйте: фильтр [] => значение,: фильтр [] => значение2

4 голосов
/ 13 ноября 2014

для создания правильной строки запроса, вы можете использовать

params = {a: 1, b: [1,2]}.to_query

http://apidock.com/rails/Hash/to_query
http://apidock.com/rails/Hash/to_param

...