Rails 5: как обрабатывать сериализованный строковый массив в simple_form?

#ruby-on-rails #simple-form #cocoon-gem

#ruby-on-rails #простая форма #cocoon-gem

Вопрос:

В качестве заголовка у меня есть столбец сериализованной строки в модели:

 class Product < ApplicationRecord
  serialize :ingredient_fields, Array
end
 

ingrdient_field содержит много строк, но хранится в одном столбце в модели продукта. Это не вложенные объекты.

Но я не уверен, как обрабатывать эти динамические текстовые вводы, используя simple_form, или если я могу использовать cocoon или nested_form_fields для обработки поведения. Я пробовал много разных способов с помощью этих драгоценных камней для создания HTML-кода, подобного:

 <form>
  <input name="product[ingredient_fields][]"> <button>remove</button>
  <input name="product[ingredient_fields][]"> <button>remove</button>
  <button>add ingredient</button>
</form>
 

но все не удалось.

Или я могу писать только html и js самостоятельно?

Ответ №1:

вы можете вставить индекс во входные имена, например:

 <input name="product[ingredient_fields][1]">
<input name="product[ingredient_fields][2]">
 

таким образом, rails получит массив продуктов [ingredient_fields]