Rails Paperclip :: AdapterRegistry :: NoHandlerError

时间:2014-11-12 22:19:15

标签: ruby-on-rails ruby ruby-on-rails-4 paperclip activeadmin

错误

Paperclip::AdapterRegistry::NoHandlerError at /admin/posts/1 No handler found for foo.png

我有一个带有Active Admin的rails 4应用程序,我试图将图像上传到我的Post模型,但我收到了上述错误。这是我的设置

的Gemfile

ruby '2.1.2'

gem 'rails', '4.1.6'
gem 'activeadmin', github: 'gregbell/active_admin'
gem 'paperclip'
gem 'aws-sdk'

模型

class Post < ActiveRecord::Base

  has_attached_file :image, styles: {
    thumb: '100x100>',
    square: '200x200#',
    medium: '300x300>'
  }
  validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/

end

Active Admin

permit_params :image

form do |f|
  f.inputs do
    f.input :image, as: :file, hint: (f.template.image_tag(f.object.image.url(:thumb)) if f.object.image?)
  end
  f.actions
end

/config/initializers/paperclip.rb

Paperclip::Attachment.default_options[:storage] = :s3
Paperclip::Attachment.default_options[:s3_host_name] = 's3-eu-west-1.amazonaws.com'
Paperclip::Attachment.default_options[:url] = ':s3_domain_url'
Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename'
Paperclip::Attachment.default_options[:s3_protocol] = 'http'
Paperclip::Attachment.default_options[:s3_credentials] = 
  { :bucket => 'foo-production',
    :access_key_id => 'XXXXXXXXXXXX',
    :secret_access_key => 'XXXXXXXXXXXXXXXXXXXXXX' }

2 个答案:

答案 0 :(得分:6)

所以这就是答案:

form :html => {:multipart => true} do |f|
  f.inputs do
    f.input :image, as: :file, hint: (f.template.image_tag(f.object.image.url(:thumb)) if f.object.image?)
  end
  f.actions
end

答案 1 :(得分:0)

您是否安装了imagemagick?

如果你有自制软件,在OS X上,它就像brew install imagemagick一样简单。对于Windows,获取.exe。

http://www.imagemagick.org/

Imagemagick为Paperclip执行调整大小/图像处理。

相关问题