Skip to content

画像ファイルの読み込み

baban edited this page Jan 22, 2012 · 3 revisions

画像ファイルの読み込み

画像をfixtureから読み込み時には実際のファイルを利用できると便利なのでFactoryFilterの機能を利用して、読み込みを行う

次のような定義のテーブルを作成する

class CreateUploadImages < ActiveRecord::Migration
  def self.up
    create_table :upload_images do |t|
      t.string :name
      t.binary :content, length: 5.megabyte
      t.timestamps
    end
  end
  def self.down
    drop_table :upload_images
  end
end

画像のファイル名と、そのファイルの中身を格納するcontentというフィールドが存在するのでファイル名からcontentフィールドへ値を挿入するには次のように記述する

# 画像を読み出し
Flextures::Factory.define :upload_images do |f|
  filename = f.name
  f.name = (Rails.root + f.name).to_s
  f.content = ActiveSupport::Base64.encode64(IO.read("#{filename}")).gsub(/^/, "    ")
end