Как я уже говорил выше, у меня была похожая проблема с Mongoid, Carrierwave и GridFS.
Мое решение супер хакерское, но оно сработало для меня.
У меня был класс Image, где мое изображение было смонтировано
class Image
include Mongoid::Document
include Mongoid::Timestamps
field :title
field :image
field :order
mount_uploader :image, ImageUploader
embedded_in :article
end
class Article
include Mongoid::Document
...
embeds_one :image
...
end
Моему загрузчику carrierwave потребовались атрибуты, отправленные ему с ключом Mount Uploader (образ).
Image.create( :image => image_attributes)
Но новая форма редактирования / редактирования статьи создала нечто похожее на:
:article => { :image => #ActionDispatch... }
вместо
:article => { :image => { :image => #ActionDispatch... } }
поэтому я решил изменить имя поля в форме на
file_field :article, :photo
, а затем добавьте фотосеттер в класс статьи, создавший изображение
model Article
include Mongoid::Document
...
def photo=(attrs)
create_image(:image => attrs)
end
end
Я пробовал это с изображением =, но оно бесконечно повторялось и совершало злые поступки.
Я тоже попробовал это
file_field "article[image]", :image
без сеттера, и это не вызвало исключения, но и не сохранило мое изображение.
Насколько я знаю, скрепка очень похожа в этом отношении. Может быть, это будет работать для кого-то или кто-то может навести порядок в моем беспорядке