Я пишу форму ActiveAdmin для записи, которая принимает массив строк. Давайте назовем их виджетами. Я использую форму множественного выбора, например, так:
ActiveAdmin.register Things do
permit_params widgets[]
form do |f|
f.inputs do
...
f.input :widgets,
as: :select,
collection: [],
multiple: true
end
end
end
С небольшим количеством Javascript, чтобы помочь пользователю, можно ввести свои виджеты, и он будет доставлен как Array of Strings. Но при редактировании существующей записи существующие record.widgets
не заполняются в поле, поле виджетов остается пустым. Я подозреваю, что происходит, когда ActiveAdmin / Formtastic интерпретирует этот выбор как отношение has_many с Widget, а строки - как идентификаторы Widget. ActiveAdmin игнорирует ошибку.
Как я могу написать вход для передачи простого массива строк в модель с ActiveAdmin? Я хотел бы, чтобы мои параметры как params[:thing][:widgets] = ["foo", "bar"]