Я недавно внедрил Carrierwave в проект и заставил его работать на одну модель.Я попытался распространить этот же код на другую модель, и по какой-то причине изображения не будут сохранены.
Обе таблицы моделей содержат столбец для «изображений» в схеме типа «текст».
Обе модели имеют следующие строки вверху:
mount_uploaders :images, ImageUploader
serialize :images, JSON
У меня есть закрытый метод в обоих контроллерах, разрешающий изображения:
def images_param
params.require(:image_files).permit!
end
И я добавляю изображения вобъект в действии #update обоих контроллеров выглядит так:
object.images = images_param.values
object.save
byebug
Что меня смущает, так это то, что это хорошо работает для одной из моделей, но не работает для другой.Более того, когда я использую byebug для проверки объекта, работающая модель показывает изображения, добавленные к объекту, в то время как другая модель показывает изображения как «ноль».
Вот (работающий) вывод команды byebug для объекта 1 :
#<PageAppearance id: 10, images: ["image-1.png"]>
Вот (работающий) вывод команды byebug для объекта 1 .images:
[#<ImageUploader:0x00007f8bb5eb43d8 @model=#<PageAppearance id: 10, images: ["image-1.png"]>, @mounted_as=:images, @cache_id=nil, @filename="image-1.png", @original_filename="image-1.png", @file=#<CarrierWave::SanitizedFile:0x00007f8bb736d400 @file="/Users/agaus/environment/namc-portal_/public/uploads/page_appearance/images/10/image-1.png", @original_filename=nil, @content_type="image/png">, @cache_storage=#<CarrierWave::Storage::File:0x00007f8bb5eacd90 @uploader=#<ImageUploader:0x00007f8bb5eb43d8 ...>>, @versions={}, @storage=#<CarrierWave::Storage::File:0x00007f8bb1f8a888 @uploader=#<ImageUploader:0x00007f8bb5eb43d8 ...>>>]
>
Вот выход (неудачный) бэга для объекта 2 :
#<Question id: 276, images: nil>
Вот выход (неудачный) бэга для объекта 2 .images:
[#<ImageUploader:0x00007f8bb80f7620 @model=#<Question id: 276, images: nil>, @mounted_as=:images, @storage=#<CarrierWave::Storage::File:0x00007f8bb80eb7d0 @uploader=#<ImageUploader:0x00007f8bb80f7620 ...>>>]
>
Если у кого-то есть идеи, почему это может произойти, я был бы очень признателен!