Ruby on rails 工厂女工带可再填充宝石

Ruby on rails 工厂女工带可再填充宝石,ruby-on-rails,ruby,factory-bot,refile,Ruby On Rails,Ruby,Factory Bot,Refile,我选择RefileGem来处理应用程序中的文件上载。我在和FactoryGirl一起使用时遇到了一些麻烦。 在我的工厂里,我有这样的东西: include ActionDispatch::TestProcess FactoryGirl.define do factory :company do sequence(:name) { |n| "Company #{n}" } logo_id { fixture_file_upload(Rails.root.to_s + "/sp

我选择RefileGem来处理应用程序中的文件上载。我在和FactoryGirl一起使用时遇到了一些麻烦。 在我的工厂里,我有这样的东西:

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
编辑: 此错误是由“我的视图”模板中的此行引起的:

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

不要手动设置徽标id。试试这样的。此外,为了加快测试速度,请使用一些轻量级文件,而不是真正的文件,如
StringIO

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

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

您是否尝试过在独立规范中使用工厂?您已经发布了一个相当高级别的错误…请发布工厂目标类的代码。