ruby on rails - Entrada de archivo de imagen con Formtastic y ActiveAdmin
add activeadmin gem (4)
Empecé a usar formstatic pero necesito crear un campo de archivo con vista previa de la imagen. Quiero decir, cuando edito un objeto, quiero ver la imagen ya vinculada.
¿Cómo puedo hacer eso?
Gracias !
Utilice clip con formtastic
La página de github de Formtasitc menciona que admite clip:
: archivo - un campo de archivo. Valor predeterminado para la coincidencia de atributos de archivo adjunto: clip de papel o archivo adjunto_fu .
Aquí hay algunos screencasts útiles que lo pondrán en marcha:
EDITAR:
Para mostrar una imagen en una columna de una cuadrícula en ActiveAdmin necesita hacer una columna personalizada (Esto no se ha probado y podría tener fallas, estoy extrapolando esto de la documentación ):
index do
column "Title" do |post|
link_to image_tag("path to file", :alt => "post image"), admin_post_path(post)
end
end
La respuesta es usar el atributo de sugerencia:
ActiveAdmin.register Event do
form :html => { :enctype => "multipart/form-data" } do |f|
f.input :map, :as => :file, :hint => f.template.image_tag(f.object.map.url(:thumb))
end
end
Adiós
Dos gemas y un complemento pueden ayudar a su caso:
Asegúrate de mirar:
Gemas:
Paperclip : https://github.com/thoughtbot/paperclip
RailsCast en PaperClip : http://railscasts.com/episodes/134-paperclip
CarrierWave : https://github.com/carrierwaveuploader/carrierwave
RailsCast en CarrierWave : http://railscasts.com/episodes/253-carrierwave-file-uploads
Carga de archivos Jquery : https://github.com/blueimp/jQuery-File-Upload
Jquery File Upload RailsCast : http://railscasts.com/episodes/381-jquery-file-upload (Necesita una cuenta Pro para RailsCast)
Como dijo @ianpetzer, en Rails 4.2 / ActiveAdmin Master, la respuesta actual hace que se escriba también una referencia de objeto. La respuesta correcta para 2016 debería ser similar a esta respuesta :
form :html => { :multipart => true } do |f|
f.inputs do
#...
f.input :image, required: false, hint: image_tag(object.image.url(:medium)).html_safe
#...
end
end