Я реализую tag2 с помощью has_many. Моя реализация имеет два разных сценария.Rails - Tagging with has_many through и select2
- Меню выбора позволяет несколько (пометки), но не позволяет на входе в меню выбора.
- То же, что и выше, но использует ajax, чтобы позволить пользователю вводить новые значения выбора на лету.
Сценарий 1 хорошо подходит для маркировки. Сценарий 2, похоже, работает (может выполнять тегирование), но не сохраняет значения. Моя проблема, похоже, сводится к моим моим элементам ввода для сценариев.
Сценарий 1 использует:
<%= f.association :repairers, label_method: :rep_name, value_method: :id, include_blank: true, label: 'Repairer'%>
и когда форма отправлена дает Params похожие на:
"repairer_ids"=>["", "1132", "1131"]
Сценарий 2: использование
<%= f.hidden_field :repair_type_id, :class => "required on-the-fly-select select"%>
и использует много js-кода для реализации на лету ввода для меню выбора. Когда форма будет отправлена данные будут выглядеть следующим образом:
"repair_type_id"=>"5688,5690"
Так со сценарием 2 идентификаторы не будут представлены в виде массива. Я попытался изменить выбор, чтобы:
<%= hidden_field_tag("repair_item[repair_type_ids][]", "", :id => "repair_item_repair_type_ids", :class => "required on-the-fly-select select") %>
но затем соответствующие пары подаются неправильно, и не спасаю:
"repair_type_ids"=>["5688,5690"]
Можно ли получить параметры из Сценария 2 представить в формате, который Rails сделал параметры в Сценарий 1?
почему нельзя использовать 'метод split' рубина, чтобы преобразовать эту строку данных в массив и хранить в DB – anusha