<%= 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",
誰でもこれを解決する方法を知っていますか? ありがとう!
アップデート:
Ryan の railscasts ビデオも JQuery で見ましたが、これに対する彼の修正はうまくいきませんでした。
ギャラリー.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