Note that there are some explanatory texts on larger screens.

plurals
  1. POPaperclip multiple image upload
    primarykey
    data
    text
    <p>Trying to achieve this without breaking the existing data save structure. I have a form that uploads a <em>single image</em> to <strong>asset</strong>. <strong>Edit</strong> Modified the form for 5 image assets. <em>See below</em>. . . </p> <p>The form reads below: </p> <pre><code>&lt;%= form_for @asset, :html =&gt; { :multipart =&gt; true } do |f| %&gt; &lt;div class="span10"&gt; &lt;%= render 'shared/asset_errors' %&gt; &lt;h3&gt;Upload to Procedure Folder&lt;/h3&gt; &lt;/div&gt; &lt;div class="span5"&gt; &lt;% @procedures = @patient.procedure_folders.all %&gt; &lt;%= f.label :procedure_folder_id, "Procedure" %&gt; &lt;%= f.select :procedure_folder_id, @procedures.map { |p| [Procedure.find(p.procedure_id).procedure, p.id] } %&gt; &lt;/div&gt; &lt;div class="span5"&gt; &lt;%= f.label :date %&gt; &lt;%= f.text_field :date, 'data-behaviour' =&gt; 'datepicker' %&gt; &lt;/div&gt; &lt;div class="span10"&gt; &lt;%= f.label :notes %&gt; &lt;%= f.text_field :notes %&gt; &lt;/div&gt; &lt;div class="span10"&gt; &lt;% 5.times do |image| %&gt; &lt;p&gt;&lt;%= f.file_field :asset, name: "asset[asset][#{image}]", id: "asset_asset_#{image}" %&gt;&lt;/p&gt; &lt;% end %&gt; &lt;/div&gt; &lt;div class="span10"&gt; &lt;%= f.hidden_field :patient_id, value: @patient.id %&gt; &lt;%= f.submit "Upload", class: "btn btn-primary" %&gt; &lt;/div&gt; &lt;% end %&gt; </code></pre> <p>What I would like to achieve -- and have read through some of the methods listed -- is to either static place 5 form fields in this form.. or make it jquery ready with a "add another photo" button.</p> <p>Class and Controller</p> <p>Class first: </p> <pre><code>class Asset &lt; ActiveRecord::Base attr_accessible :asset, :asset_content_type, :asset_file_name, :asset_file_size, :asset_updated_at, :patient_id, :procedure_folder_id, :date, :notes belongs_to :procedure_folder belongs_to :patient has_attached_file :asset, :styles =&gt; { :large =&gt; "800x600", :thumb =&gt; "150x150" } validates :date, presence: true validates :patient_id, presence: true validates :asset, :attachment_presence =&gt; true default_scope order: 'assets.date ASC' end </code></pre> <p>Controller: </p> <pre class="lang-rb prettyprint-override"><code>class AssetsController &lt; ApplicationController before_filter :signed_in_user def create @asset = Asset.new(params[:asset]) if @asset.save flash[:success] = "Images uploaded successfully!" redirect_to patient_path(@asset.patient_id) else flash[:error] = "There was an error, Date and Image is required!" redirect_to patient_path(@asset.patient_id) end end def destroy @asset = Asset.find(params[:id]) set_variables if !current_user.admin? flash[:error] = "You do not have delete priviledges" redirect_to procedure_folder_path(@asset.procedure_folder_id) else @asset.destroy flash[:info] = "Image has been deleted and cannot be recovered" redirect_to procedure_folder_path(@asset.procedure_folder_id) end end def set_variables end end </code></pre> <p>What steps can I take to effectively keep the existing structure and avoid adding in a second form. This is running on a small production environment and would like to avoid screwing with existing data... (will test on dev naturally before we use it live).</p> <p>Any thoughts/tips/solutions would be greatly appreciated. </p> <p>Thank you in advance. </p> <p><strong>Edit</strong> </p> <p>Now that the form comes up properly I receive the following error when uploading multiple images. </p> <pre><code> Paperclip::AdapterRegistry::NoHandlerError in AssetsController#create No handler found for {"0"=&gt;#&lt;ActionDispatch::Http::UploadedFile:0x007f88c517c230 @original_filename="Screen Shot 2013-02-11 at 11.03.46 PM.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"asset[asset][0]\"; filename=\"Screen Shot 2013-02-11 at 11.03.46 PM.png\"\r\nContent-Type: image/png\r\n", @tempfile=#&lt;File:/var/folders/8k/ctb40yd92w13qyjj3fn0gdnc0000gn/T/RackMultipart20130604-13969-jzz7cl&gt;&gt;, "1"=&gt;#&lt;ActionDispatch::Http::UploadedFile:0x007f88c563bb40 @original_filename="Screen Shot 2013-03-18 at 10.59.47 PM.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"asset[asset][1]\"; filename=\"Screen Shot 2013-03-18 at 10.59.47 PM.png\"\r\nContent-Type: image/png\r\n", @tempfile=#&lt;File:/var/folders/8k/ctb40yd92w13qyjj3fn0gdnc0000gn/T/RackMultipart20130604-13969-1h5qj85&gt;&gt;, "2"=&gt;#&lt;ActionDispatch::Http::UploadedFile:0x007f88c563da30 @original_filename="Screen Shot 2013-03-18 at 11.01.06 PM.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"asset[asset][2]\"; filename=\"Screen Shot 2013-03-18 at 11.01.06 PM.png\"\r\nContent-Type: image/png\r\n", @tempfile=#&lt;File:/var/folders/8k/ctb40yd92w13qyjj3fn0gdnc0000gn/T/RackMultipart20130604-13969-1xsd0fk&gt;&gt;} Rails.root: /Users/sandovalg/Documents/rails_projects/autre_dlz Application Trace | Framework Trace | Full Trace app/controllers/assets_controller.rb:5:in `new' app/controllers/assets_controller.rb:5:in `create' Request Parameters: {"utf8"=&gt;"✓", "authenticity_token"=&gt;"RjRFHgYu/4fHRl0iksOkivVOR4ikIvavvXxoqSoTMW0=", "asset"=&gt;{"procedure_folder_id"=&gt;"1", "date"=&gt;"2013-06-04", "notes"=&gt;"", "asset"=&gt;{"0"=&gt;#&lt;ActionDispatch::Http::UploadedFile:0x007f88c517c230 @original_filename="Screen Shot 2013-02-11 at 11.03.46 PM.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"asset[asset][0]\"; filename=\"Screen Shot 2013-02-11 at 11.03.46 PM.png\"\r\nContent-Type: image/png\r\n", @tempfile=#&lt;File:/var/folders/8k/ctb40yd92w13qyjj3fn0gdnc0000gn/T/RackMultipart20130604-13969-jzz7cl&gt;&gt;, "1"=&gt;#&lt;ActionDispatch::Http::UploadedFile:0x007f88c563bb40 @original_filename="Screen Shot 2013-03-18 at 10.59.47 PM.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"asset[asset][1]\"; filename=\"Screen Shot 2013-03-18 at 10.59.47 PM.png\"\r\nContent-Type: image/png\r\n", @tempfile=#&lt;File:/var/folders/8k/ctb40yd92w13qyjj3fn0gdnc0000gn/T/RackMultipart20130604-13969-1h5qj85&gt;&gt;, "2"=&gt;#&lt;ActionDispatch::Http::UploadedFile:0x007f88c563da30 @original_filename="Screen Shot 2013-03-18 at 11.01.06 PM.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"asset[asset][2]\"; filename=\"Screen Shot 2013-03-18 at 11.01.06 PM.png\"\r\nContent-Type: image/png\r\n", @tempfile=#&lt;File:/var/folders/8k/ctb40yd92w13qyjj3fn0gdnc0000gn/T/RackMultipart20130604-13969-1xsd0fk&gt;&gt;}, "patient_id"=&gt;"1"}, "commit"=&gt;"Upload"} </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload