Rails Paperclip :: AdapterRegistry :: NoHandlerError

Dan*_*ell 2 ruby ruby-on-rails paperclip activeadmin ruby-on-rails-4

错误

Paperclip::AdapterRegistry::NoHandlerError at /admin/posts/1 No handler found for foo.png
Run Code Online (Sandbox Code Playgroud)

我有一个带有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'
Run Code Online (Sandbox Code Playgroud)

模型

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
Run Code Online (Sandbox Code Playgroud)

主动管理员

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
Run Code Online (Sandbox Code Playgroud)

/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' }
Run Code Online (Sandbox Code Playgroud)

Dan*_*ell 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
Run Code Online (Sandbox Code Playgroud)