同じにやっても動かない

書いてある通りやっているのに動かないのです

Dragonflyの画像ファイルを持つphotoモデルをRspec + FactoryGirl で testする

Dragonflyで画像ファイルを管理しているのですが、test方法のメモです。

テスト環境は Rspec + FactoryGirl ですが、Unit testとFixtureでも同じだと思います。


Dragonflyはtest時以下ディレクトリからファイルを探します

public\system\dragonfly\test\YYYY\MM


登録しようとする画像ファイル名が"IMG_0001.jpg"だとすると、Dragonflyの生成するuidはYYYY/MM/DD_HH_MM_SS_MLS_IMG_0001.jpgになるので、上記ディレクトリに "DD_HH_MM_SS_MLS_IMG_0001.jpg"という名前で画像ファイルを置けばよいです。


photo_spec.rbはこんな感じです。

# -*- coding: utf-8 -*-
require 'spec_helper'

describe Photo do

  describe "画像ファイル" do
    before do
      @jpg = create(:photo, photo_image_name: "OK.jpg", photo_image_uid: "2013/08/01_00_00_00_001_OK.jpg")
    end
    
    it { @jpg.should_not  be_new_record }
  end
end

上記specだと "public\system\dragonfly\test\2013\08\01_00_00_00_001_OK.jpg" というファイルを準備しておけば良いです。

参考までにphotoモデルはこんな感じ。

class Photo < ActiveRecord::Base
  attr_accessible :photo_image
  
  # For dragonfly
  image_accessor :photo_image
end

ではでは。