2

私のコードには、次のブロックがあります

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のビルドがパスするようにこれを解決する方法はありますか?

4

2 に答える 2

3

リポジトリでは tmp フォルダが無視されているため (.gitignore)、クリーンなリポジトリのクローンを作成しても作成されません。

私は間違っているかもしれませんがTempfile.open([model.id.to_s, '.txt'], Rails.root.join('tmp'))、tmp フォルダーを作成しません。既に存在すると想定しています。

無視されたフォルダーで同様の問題がありました-クリーンなgitクローンでテストしてから、CI / CDサーバーで実行するのと同じようにこのテストを実行できます。

于 2014-06-16T09:33:31.333 に答える