gpt4 book ai didi

ruby-on-rails - Rails 4 Paperclip FactoryGirl 文件上传

转载 作者:行者123 更新时间:2023-12-04 05:57:51 24 4
gpt4 key购买 nike

我有一个 FactoryGirl :product 工厂,它使用 fixture_file_upload 来设置 image ,这是一个回形针附件。

    image { fixture_file_upload "#{Rails.root}/spec/fixtures/images/product.png", 'image/png' }
fixture_file_upload 工作正常, 每次测试使用工厂创建新产品时,Paperclip 都会在 publicproducts/<id>/original.png 中创建一个新文件。 这就是问题所在。 。在每次测试运行时填充文件夹 publicproducts 是 Not Acceptable 。

我能想到的第一个解决方法是 https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Cleanup-after-your-Rspec-tests 中提到的解决方案

您是否以其他方式解决了这个问题?

最佳答案

Deep也提到的解决方案是:

  • 指定测试环境中的回形针应将文件上传到文件夹 test_uploads ,
  • 修改 factory_girl 工厂以上传 ex 的夹具。 spec/fixtures/images/filename.extension ,
  • rails_helper.rb
  • 中添加一个 after all cleanup 块

    在代码中:
    config/environments/test.rb
      ...
    config.paperclip_defaults = {
    path: ':rails_root/test_uploads/:class/:id/:attachment/:filename.:extension',
    url: ':rails_root/test_uploads/:class/:id/:attachment/:filename.:extension'
    }
    ...
    spec/factories/products.rb
    image { fixture_file_upload "#{Rails.root}/spec/fixtures/images/product.png", 'image/png' }
    rails_helper.rb
      ...
    include ActionDispatch::TestProcess

    config.after(:all) do
    if Rails.env.test?
    test_uploads = Dir["#{Rails.root}/test_uploads"]
    FileUtils.rm_rf(test_uploads)
    end
    end
    ...

    关于ruby-on-rails - Rails 4 Paperclip FactoryGirl 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31650949/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com