Rails 2.3.8 множественный выбор не возвращает массив, даже с - PullRequest
0 голосов
/ 08 января 2012

Я признаюсь, что был немного озадачен этим, так как некоторое время занимался рельсами. Я пытаюсь получить массив значений в params[] из комбинированного списка с множественным выбором.

Это рельсы 2.3.5 и ruby ​​1.8.6 (я знаю, я знаю).

Сгенерированный HTML-код:

 <select id="shows_" multiple="multiple" name="shows[]">
    <option value="5">A Grand Night For Singing (Jan - Feb 2007)</option>
    <option value="6">Who's Afraid of Virginia Woolf? (Mar - Apr 2007)</option>
  ...more options...
 </select>

Обратите внимание, что имя выбранного тега оканчивается на '[]' и установлена ​​опция «несколько». Если я установлю точку останова отладки в верхней части действия контроллера и посмотрю на params[:shows]:

(rdb:62) p params[:shows]
["17,18,19"]

Захваченные значения верны, но я ожидал ["17","18","19"], I.E. массив из N элементов, а не массив из одного элемента, состоящий из N значений, разделенных запятыми.

Я мог бы легко обойти это, но я сбит с толку, так как я почти уверен, что это работало, и поведение, которое я ожидаю, является задокументированным поведением. Есть идеи?

1 Ответ

0 голосов
/ 09 января 2012

Параметры разбираются на Rack::Request и Rack::Utils.Вы должны взглянуть на это классы.Имейте в виду, что ссылка не обязательно указывает на версию Rack, которую вы используете.

...