我在将 SQLlite Rails 3 应用程序转移到 Mongoid Rails 3 应用程序时遇到问题。在 SQLlite 版本中,我可以轻松地将一个模型(“图像”)的图像上传表单(使用 Paperclip)包含在另一个模型(“产品”)的嵌套表单中。这是我的“新”产品形式:
<%= form_for @product, :html => {:multipart => true} do |f| %>
<% f.fields_for :images do |image_form| %>
<%= f.label :productphoto %>
<%= f.file_field :productphoto %><br />
<% end %>
<% end %>
这是“显示”视图:
<% @product.images.each do |image| %>
<%= image_tag image.productphoto.url(:gallerythumb) %><br />
<% end %>
当我尝试在我的 Mongoid Rails 3 应用程序(使用 Carrierwave)中使用相同的产品视图时,我收到以下错误:
TypeError in Stores#show:
can't convert nil into String
<%= image_tag product.image.url(:gallerythumb) %>
我很确定我在 Mongoid 版本中的模型是正确的,因为如果我在我的“图像”模型中添加一个字符串(如“名称”)并将其嵌套在“产品”表单中,它就可以工作。此外,我能够将图像上传到非嵌套模型表单中。
任何帮助将不胜感激!