I use Active admin as my rails application backend. I want to make a file upload. How can I accomplish this functionality?
Asked
Active
Viewed 3.1k times
41
-
I've never used Active Admin specifically, but the Paperclip gem helps you easily upload files and attach them to any model. https://github.com/thoughtbot/paperclip – airlok Aug 16 '11 at 17:52
4 Answers
75
I found a way to use Paperclip with Active Admin.
I added this code in my model "Event" :
has_attached_file :map, :styles => { :medium => "238x238>",
:thumb => "100x100>"
}
And i did this for my admin model :
ActiveAdmin.register Event do
form :html => { :enctype => "multipart/form-data" } do |f|
f.inputs "Details" do
f.input :continent
f.input :event_type
f.input :name
f.input :title
f.input :content
f.input :date_start, :as => :date
f.input :date_end, :as => :date
f.input :place
f.input :map, :as => :file
f.input :image, :as => :file, :hint => f.template.image_tag(f.object.image.url(:medium))
f.input :userfull_info
f.input :price
f.input :phone, :as => :phone
f.input :website, :as => :url
end
f.buttons
end
end
To use it on the index page, you have to use :
column "Image" do |event|
link_to(image_tag(event.image.url(:thumb), :height => '100'), admin_event_path(event))
end
default_actions
end

Brad Werth
- 17,411
- 10
- 63
- 88

Sebastien
- 6,640
- 14
- 57
- 105
-
4You can use f.input :image, :hint => "current image: #{f.template.image_tag(f.object.image.url(:thumb))}" – Nazar Nov 11 '11 at 12:50
-
-
2
-
This seems great, but it doesn't preview the image if you just selected it and didn't upload the image yet. Is there a way to do this? – Tiago Feb 22 '17 at 12:26
13
Got it worked for Rails 4.1 and Paperclip 4.1:
Model
class Hotel < ActiveRecord::Base
has_attached_file :thumbnail, :styles => { :medium => "300x300#", :thumb => "200x200#" }
validates_attachment :thumbnail, content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
end
Admin Model
ActiveAdmin.register Hotel do
permit_params :name, :description, :price, :thumbnail
form do |f|
f.inputs "Project Details" do
f.input :name
f.input :thumbnail, :required => false, :as => :file
# Will preview the image when the object is edited
end
f.actions
end
show do |ad|
attributes_table do
row :name
row :thumbnail do
image_tag(ad.thumbnail.url(:thumb))
end
# Will display the image on show object page
end
end
end

kokemomuke
- 554
- 7
- 10
-
I got `paperclip NoHandlerError` and I had to `form :html => {:multipart => true} do |f|` – givanse Nov 18 '14 at 07:04
-
6
I'm using the rails 3.0.1 and the following code
f.input :image, :hint => "current image: #{f.template.image_tag(f.object.image.url(:thumb))}"
return a string. After search a solution, i found it.
f.input :image, :hint => f.template.image_tag(f.object.image.url(:thumb))
Send direct the object, will return a image to the html

mmarqueti
- 257
- 1
- 5
- 8
-
2You can use the first line of code, just call `html_safe` on the string (after the double quotes). – Brett Bender Jan 03 '12 at 19:19
5
In latest Version of ActiveAdmin & Rails 6 for displaying the file field we need to use the below code
ActiveAdmin.register Project do
permit_params :name, :uploads
form multipart: true do |f|
f.inputs "Project Details" do
f.input :name
f.input :uploads, as: :file, required: false
end
f.actions
end
end
In some old version of AA following code also worked.
f.input :uploads, required: false

Amal Kumar S
- 15,555
- 19
- 56
- 88