Хорошо, поэтому я посмотрел на некоторые другие ваши вопросы, и я думаю, что у меня может быть что-то, что будет работать для вас. Чтобы это работало, вам понадобится столбец в базе данных (я назову его attachment_storage
), где вы можете хранить эти вложения после их сериализации.
По сути, вы хотите сначала получить вложения в массив, а затем сериализовать их в строку, чтобы вы могли сохранить их в базе данных.
Вот код для этого.
attachment_storage = []
(1..params[:attachments].to_i).each do |attachment_num|
attachment_storage << params["attachment#{attachment_num}".to_sym]
end
Здесь мы строим символы для хэша params, используя строку и to_sym, чтобы превратить его в символ типа :attachment1
, :attachment2
и т. Д.
Затем вы хотите поместить в базу данных, чтобы вы могли сохранить ее, как указано в [Документация ActiveRecord] [1] в разделе «Сохранение массивов, хэшей и других не отображаемых объектов в текстовых столбцах».
Чтобы сериализация работала, вам нужно добавить serialize :attachment_storage
к вашей модели, а затем, чтобы сохранить ее, вы должны назначить ее так же, как любой другой параметр, как указано выше. Затем сохраните вашу модель, и она будет сериализована для вас.