Добавьте значения к параметру в URL как одно значение, а не как массив - Ruby - PullRequest
2 голосов
/ 06 ноября 2019

У меня есть метод, который я хотел бы использовать для тестирования, который просто выполняет GET-запрос к определенному URL. Параметр для url - это всего лишь один параметр с несколькими значениями, которые можно передавать через запятую.

идеальный запрос должен выглядеть так: url + "/items?item_ids?=1,2,3,4"

Мой метод принимает несколько аргументов:

def method(*args) url = url + "/items?item_ids?=#{args}" end

Проблема, с которой я столкнулсяИмеется в том, что он будет вводить аргументы в URL как массив, который не работает. Есть ли хороший способ добавить аргументы к URL-адресу не в виде массива, а только через запятую? В этот метод будет передано неизвестное количество аргументов.

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Вы в основном используете строковую интерполяцию для массива аргументов. Вы можете легко изменить массив в строку аргументов, разделенных запятыми, выполнив команду

def method(*args)
  url = url + "/items?item_ids?=#{args.join(',')}"
end

Убей меня на 99 уровне в Runescape, братан;)

0 голосов
/ 06 ноября 2019

В соответствии со стандартным соглашением о рельсах и при условии, что items переходит к действию ItemsController # index, вы можете выполнить

#/items?item_ids?=1,2,3,4
def index 
  item_id_list = params[:item_ids]
end

На этом этапе item_id_list станет разделенной запятой строкой "1,2,3,4 ", и вы можете выполнять любые функции строки интерполяции.

Например, если вы хотите, чтобы все идентификаторы были в массиве, вы можете сделать

item_id_list.split(",") #=> [1,2,3,4] etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...