Отправка массива с помощью form_for - PullRequest
0 голосов
/ 30 сентября 2010

Есть ли способ отправить массив с помощью 'form_for'?

Вот пример того, что я имею в виду, если я использовал обычный HTML для передачи значений:

<input type="text" name="product[cost][]">

Который должен стать:

params["product"]["cost"]

Но есть ли способ сделать это с помощью form_for?

Ответы [ 2 ]

1 голос
/ 16 мая 2018

Неважно ... Я написал этот ответ, а затем понял, что это по-прежнему в виде строки; По какой-то причине рельсы добавляют скобки в область ввода, но, насколько я могу судить, они бесполезны. Так что я согласен; лучший способ действия - использовать before_action в контроллере и разделить строку вручную. Вы можете сойти с ума и использовать simple_form для создания пользовательского метода ввода, но, как новичок, я думаю, это становится немного интенсивнее.

Я понял, как это работает. Мой атрибут (ингредиенты) сохранен в моей базе данных в виде массива, что важно. Если атрибут сохраняется как массив, и я использую <%= f.text_area :ingredients %>, текстовая область содержит набор квадратных скобок. Пока ввод вводится в скобках, параметры получают входные данные в виде массива! Это не очень красиво, но я уверен, что смогу исправить дисплей, чтобы позже скрыть эти скобки. Надеюсь, это поможет.

0 голосов
/ 30 сентября 2010

Нет, Rails интерпретирует все отправленные формы как (экранированные) строки.Вам следует преобразовать строку в массив вручную на серверной стороне внутри действия контроллера или before_filter.

Каков пример значения, которое вы ожидаете от пользователя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...