7

Paperclip は、ビューに含める添付ファイルの URL を取得するための .url メソッドを提供します。

Ruby 内から実際に添付ファイルをファイルとして開く必要があります。

約 6 か月前、Paperclip の最新版では、添付オブジェクトで to_file を呼び出すことができました。文書化されていませんでしたが、一貫して機能しました。しかし、ある時点で機能しなくなりました。

バリデーター内から (この場合、まだ最終的な場所に保存されていません)、または ActiveModel オブジェクトが保存された後 (この場合、ファイルは最終的な場所 (Amazon S3 など) に移動しました)。

オプションは次のようです。

file = File.new(object.attachment.path)

... S3 のファイルではなく、ローカル ファイルでのみ動作します。または:

file = object.attachment.queued_for_write[:original]

...最初の保存の前にのみ機能するのは(私が思うに)?

ファイルを開くだけの簡単な方法があるはずです (Amazon S3 のようなものの場合、一時的な場所にコピーする必要があるかもしれません)。しかし、私はコード (およびかなりの数の StackOverflow の質問) を読みましたが、まだ困惑しています。

すべての場合に機能するファイルとしてクリップの添付ファイルを開く標準的な方法はありますか?

4

1 に答える 1

4

これにより、ファイルが取得されます(モデルにファイルが添付されていると仮定しますfile

require 'open-uri'

file = open(yourmodel.file.url)
于 2012-10-03T01:24:52.830 に答える