【发布时间】:2012-07-23 21:19:07
【问题描述】:
我可能遗漏了一些愚蠢的东西,但我无法将多个嵌入的照片文件放入一个表单中
型号
class Product
include Mongoid::Document
embeds_many :photos, cascade_callbacks: true
end
class Photo
include Mongoid::Document
embedded_in product, :inverse_of => :photos
field :image_filename
mount_uploader :image, ImageUploader
end
控制器 - products_controller.rb
def new
@product = Product.new
3.times { @product.photos.build }
end
表格
然后我用
做表格fields_for @product.photos do |photo|
<%= photo.file_field :image %>
end
问题是只显示了 1 张照片,但我正在控制器中构建 3 张照片。即使我在内存中构建了 3 个,@product.photos.count 的计数也是 0。我错过了什么吗?
【问题讨论】:
-
与此类似,我认为您需要先“构建”产品。基本上,@product 还不存在(你没有“保存”它)所以任何基于集合的关联也将返回“nil”stackoverflow.com/questions/783584/…
-
@product 已经通过 Product.new 调用在内存中创建。这在 ActiveRecord 中很常见,但由于某种原因,它在 Mongoid 和嵌入式文档中不起作用
标签: ruby-on-rails mongoid