Как передать массив из представления в контроллер в Ruby on Rails - PullRequest
2 голосов
/ 08 июля 2011

На мой взгляд, мне нужно добавить (динамически) текстовые входы и мне нужно получить их значения в контроллере (как только пользователь отправит соответствующую форму).

Мои входные данные:

<input type="text" name="airports_input_origin" class="airports_input_origin" id="airports_input_origin_0" size="40"/> 

<input type="text" name="airports_input_origin" class="airports_input_origin" id="airports_input_origin_1" size="40"/>

и т.д ... и т.д ...

Все они имеют одинаковый атрибут 'name' .... поэтому я догадался, что если я сделаю

params[:airports_input_origin]

, я быполучить массив ... но я ошибся ...

Как я могу получить эти значения?

Thx!

1 Ответ

6 голосов
/ 08 июля 2011

Вы должны сделать что-то вроде этого:

<input type="text" name="airports_input_origin[0]" class="airports_input_origin" id="airports_input_origin_0" size="40"/> 

<input type="text" name="airports_input_origin[1]" class="airports_input_origin" id="airports_input_origin_1" size="40"/>

Rails понимает, что это массив, если вы пометите такие числа внутри имени.

Таким образом, у вас может быть функция JavaScript, которая перебирает все входные данные и сбрасывает их номера при каждом добавлении / удалении пункта назначения. Используйте регулярные выражения для замены чисел, или вы, возможно, даже жестко закодируете имя и измените «[x]», если это все, что требуется.

...