Ввод файла изображения с помощью Formtastic и ActiveAdmin

Я начал использовать formstatic, но мне нужно создать поле файла с предварительным просмотром изображения. Я имею в виду, когда я редактирую объект, я хочу, чтобы изображение уже было связано.

Как я могу это сделать?

Спасибо!

Ответы

Ответ 1

Ответ заключается в использовании атрибута подсказки:

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

Bye

Ответ 2

Используйте paperclip с помощью formtastic

Formtasitc страница github упоминает, что поддерживает paperclip:

: file - поле файла. Значение по умолчанию для атрибутов привязки файлов: paperclip или attachment_fu.

Вот некоторые полезные скринкасты, которые помогут вам:

Paperclip

Обрезка изображений

EDIT:

Чтобы отобразить изображение в столбце сетки в ActiveAdmin, вам нужно создать собственный столбец (это не проверено и может быть ошибочным, я экстраполирую это из documentation):

index do
    column "Title" do |post| 
        link_to image_tag("path to file", :alt => "post image"), admin_post_path(post)
    end
end

Ответ 3

Два драгоценных камня и один плагин могут помочь вашему делу:

Убедитесь, что вы смотрите:

Драгоценные камни:

Скрепка: https://github.com/thoughtbot/paperclip

RailsCast on PaperClip: http://railscasts.com/episodes/134-paperclip

CarrierWave: https://github.com/carrierwaveuploader/carrierwave

RailsCast на CarrierWave: http://railscasts.com/episodes/253-carrierwave-file-uploads

Загрузка файла JQuery: https://github.com/blueimp/jQuery-File-Upload

Загрузка файлов Jquery RailsCast: http://railscasts.com/episodes/381-jquery-file-upload (нужна учетная запись Pro для RailsCast)

Ответ 4

Как сказал @ianpetzer, в Rails 4.2/ActiveAdmin master текущий ответ заставляет ссылаться на ссылку на объект. Правильный ответ на 2016 год должен быть похож на этот ответ:

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