我很难将carrierwave一起使用mongoid。我正在编写一个需要将图像存储在多个集合中的应用程序,因此我创建了 Image 类,如下所示(请原谅使用 imageable):
class Image
include Mongoid::Document
embedded_in :imageable, polymorphic: true
mount_uploader :file, ImageUploader
end
ImageUploader
是由创建的rails generate uploader Image
。
然后我有一个故事模型:
class Story
include Mongoid::Document
include Mongoid::Timestamps
field :title, :type => String
field :content, :type => String
field :category, :type => String
embeds_many :blog_images, as: :imageable
end
当我尝试创建一个Story
对象时,uninitialized constant BlogImage
即使我没有通过表单提供和图像,我也会收到错误消息。我也试过在控制台中调用story.blog_images << Image.new
同样的错误。
在我的 gem 文件中,我有:
gem 'carrierwave'
gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid'
我的版本是 Mongoid - 2.4.7 和carrierwave - 0.6.2。
我的主要问题是如何解决这个错误,但我也不太确定如何设置表单来接收这些图像。(理想情况下,每次选择一个文件时,我都想使用 javascript 添加一个新对话框。)我设置模型的方式或使用carrierwave 的方式有问题吗?