Paperclip exception : Paperclip::AdapterRegistry::NoHandlerError

paperclip, ruby-on-rails

Solution

This Error is raised because you aren't giving Paperclip a correct class. It's a just a String.

You should receive something like this in `params`

"asset"=>
  {"image"=>
    #<ActionDispatch::Http::UploadedFile:0x000000056679e8
    @content_type="image/jpg",
    @headers= "Content-Disposition: form-data; name=\"asset[image]\";
      filename=\"2009-11-29-133527.jpg\"\r\nContent-Type: image/jpg\r\n",
    @original_filename=""2009-11-29-133527.jpg"",
    @tempfile=#<File:/tmp/RackMultipart20120619-1043-yvc9ox>>}

And you should have something like this in yout View (in HAML, very simplified):

= form_for @product, html: { multipart: true } do |f|
  = f.fields_for :asset do |asset_form|
    = asset_form.file_field :image

Remember to set your form to `multipart: true`.

Problem

Using Paperclip 3.0.1 in rails 3.2.2 I got this error: ``` **Paperclip::AdapterRegistry::NoHandlerError** (No handler found for "2009-11-29-133527.jpg"): ``` In my model I have: ``` class Product < ActiveRecord::Base ... has_many :assets accepts_nested_attributes_for :assets end class Asset < ActiveRecord::Base belongs_to :product has_attached_file :image, :path => ":rails_root/public/system/:attachment/:id/:style/:filename", :url => "/system/:attachment/:id/:style/:filename", :styles => { :medium => "300x300>", :thumb => "100x100>" } end ``` The exception is raised at: ``` def create **@product = Product.new params[:product]** ... end ``` with params: ``` {..., "product"=>{"title"=>"wibble1", **"assets_attributes"=>{"0"=>{"image"=>"2009-11-29-133527.jpg"} },** "description"=>"Who is wibble...", "price"=>"23.45" }, "commit"=>"Create Product", ...} ``` Anyone know what's going on?

Original source