2015-02-17 1 views
2

Я выбираю refile gem для обработки загрузки файлов в моем приложении. У меня есть проблемы с его использованием с FactoryGirl. В моей фабрике у меня есть что-то вроде этого:FactoryGirl with Refile gem

include ActionDispatch::TestProcess 
FactoryGirl.define do 
    factory :company do 
    sequence(:name) { |n| "Company #{n}" } 
    logo_id { fixture_file_upload(Rails.root.to_s + "/spec/fixtures/images/1x1.gif") } 
    end 
end 

При запуске некоторых функций спецификации он возвращает мне следующую ошибку:

5) Company destroying destroys company 
    Failure/Error: visit companies_path 
    ActionView::Template::Error: 
     Refile::InvalidID 

EDIT: Эта ошибка вызвана этой линии на мой взгляд, шаблон:

%td= image_tag attachment_url(company, :logo, :fill, 50, 50) 
+0

Вы пробовали просто использовать завод в автономной спецификации? Это довольно высокая ошибка, которую вы опубликовали ... – Jesper

+0

И, пожалуйста, отправьте код для целевого класса завода. – Jesper

ответ

1

Не устанавливайте идентификатор логотипа вручную. Попробуйте что-то вроде этого. А также, чтобы ускорить ваши тесты, используйте что-то легкое вместо реального файла, например StringIO.

FactoryGirl.define do 
    factory :company do 
    sequence(:name) { |n| "Company #{n}" } 

    logo { 
     StringIO.new('hello') 
    } 
    end 
end