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模型,但我收到了上述错误.这是我的设置
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)
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)
所以这就是答案:
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)