ActiveAdminでPaperclipの画像を表示する


概要

Paperclipを使って保存した画像を、ActiveAdminのIndexページとShowページで表示する

前提条件

  • ActiveAdminとPaperclipを使用していること

実装

# app/model/capture_image.rb

class CaptureImage < ActiveRecord::Base
  has_attached_file :image,
    :path   => "/:class/:id/:attachment/:style/:filename",
    :styles => {
      :thumb    => '200x200>',
      :original => '900x900>'
    }

  validates_attachment :image, :presence => true,
    :content_type => { :content_type => /\Aimage\/.*\Z/ },
    :size => { :in => 0..1.megabytes }
end
# app/admin/capture_image.rb:

ActiveAdmin.register CaptureImage do
  index do
    column :thumb do |obj|
      image_tag(obj.image.expiring_url(10, :thumb))
    end
    actions
  end

  show do
    attributes_table do
      row :image do |obj|
        image_tag(obj.image.expiring_url(10))
      end
    end
    active_admin_comments
  end
end