【发布时间】:2012-10-09 18:32:50
【问题描述】:
<%= semantic_form_for(@image, :url => { :action => "create_friend_upload" }, :html => {:multipart => true}) do |f| %>
<%= f.inputs do %>
<%= f.input :image, :input_html => {:multiple => true}, name: "gallery[image]" %>
<%= f.hidden_field :friend_upload, :value => true %>
<%= f.hidden_field :user_id %>
<%= f.hidden_field :friend_uploader, :value => current_user.name %>
<% end %>
<%= f.buttons do %>
<%= f.commit_button :button_html => {:class => "primary"} %>
<% end %>
<% end %>
我的问题是它不断提交一个数组,Carrierwave 无法处理。它一直说name=\"gallery[image][]\" 而不仅仅是name=\"gallery[image]\"。 (见下文)。因此,我也不断收到错误消息can't convert nil into String。
@headers="Content-Disposition: form-data; name=\"gallery[image][]\"; filename=\"VW 3.jpeg\"\r\nContent-Type: image/jpeg\r\n",
有人知道如何解决这个问题吗?谢谢!
更新:
我也确实在 JQuery 上看到了 Ryan 的 railscasts 视频,他对此的修复对我不起作用。
画廊.rb
class Gallery < ActiveRecord::Base
attr_accessible :image, :name, :friend_upload,
mount_uploader :image, GalleryUploader
end
图库控制器
def friend_upload
@image = Gallery.new
end
def create_friend_upload
@image = Gallery.create(params[:gallery])
end
【问题讨论】:
-
您能给我们展示一下 Gallery 模型声明吗?
-
@D3mon-1stVFW,我用画廊的模型和控制器更新了问题。谢谢。
-
您可以尝试绕过carrierwave,直接将您的文件上传到s3,如下所述:pjambet.github.com/blog/direct-upload-to-s3,该示例适用于一个文件,但文件输入多个,效果很好。跨度>
-
嗨@pjam,这样做,我会失去调整大小的功能吗?我需要这些功能,否则很难保持一致的大小和干净的 UI。
-
确实,这会导致一些问题,因为您可能无法通过载波使用处理,但是我知道为此目的使用 RMagick 并不难,您只需需要编写更多代码:s
标签: jquery ruby-on-rails carrierwave formtastic