【发布时间】:2014-06-15 20:45:17
【问题描述】:
在我的代码中,我有以下块
Tempfile.open([model.id.to_s, '.txt'], Rails.root.join('tmp')) do |file|
begin
file << somedata_i_have_before
model.file = file # using paperclip gem attached file
ensure
# close and delete file
file.close
file.unlink
end
end
此代码在本地和生产环境中都可以正常工作...问题是我已经设置了Wercker 应用程序来自动测试和部署,但是上面提到的块在 wercker 上失败并返回以下错误
Errno::ENOENT:
No such file or directory @ rb_sysopen - /pipeline/build/tmp/539e01d4776572049647010020140615-1174-ajp5tf.txt
# ./lib/some_lib.rb:63:in `some_method'
任何想法如何解决这个问题,以便 wercker 上的构建通过?
【问题讨论】:
-
我猜 Wercker 不允许你创建文件。通常,您希望测试行为而不是实际的磁盘 I/O。有一个很好的宝石可以帮助解决这个问题:github.com/defunkt/fakefs
标签: ruby-on-rails tdd paperclip temporary-files wercker