Skip to content

画像ファイルの読み込み

baban edited this page Jan 30, 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 = Rails.root.to_path + "/app/assets/images/" + f.name
  f.name = f.name
  f.content = IO.read("#{filename}")
end