Paperclip的文档提到您可以通过将以下代码放在test.rb
环境文件中来更改测试的上载路径:
Paperclip::Attachment.default_options[:path] = "#{Rails.root}/spec/test_files/:class/:id_partition/:style.:extension"
我遇到的问题是附件在模型中设置了一个路径,该路径不会被覆盖:
has_attached_file :photo, path: ':attachment/:id/:style.:extension'
当我运行测试时,文件将上传到
/photo/
文件夹而不是/spec/test_files/
。我可能可以通过编写自定义的Paperclip适配器来实现,但是必须有一种更简单的方法。
最佳答案
我认为这已经远远超过了您需要的帮助:),但是这可能会帮助其他人-您可以使用paperclip interpolations例如
# config/initializers/paperclip.rb
Paperclip.interpolates :path_prefix do |_attachment, _style|
if Rails.env.test?
Rails.root.join("spec/test_files/")
else
""
end
end
然后更新您的自定义路径以使用前缀:
has_attached_file :photo, path: ':path_prefix:attachment/:id/:style.:extension'
关于ruby-on-rails - 更改回形针附件上集成测试的路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37005552/