したがって、ファイルを提供するレール3とmongodbを使用するアプリがあります。既にシステムにあるファイルの新しい ObjectId を作成せずに、ランナー プロセスを使用してすべてのファイルを gridfs にインポートしたいと考えています。基本的に、carrierwave を使用して、既にデータベースにあるファイル オブジェクトにファイルを添付したいと考えています。
なぜか、新しいファイル ドキュメントを作成するときに、問題なくローカル ファイルを添付できます。ただし、以前に作成したドキュメントにローカル ファイルを添付することはできません。
私はあらゆる形式の Mongoid の更新を試しましたが、メソッドが欠落しているか、メソッドが不明であることがわかりました。
たとえば、これは機能します。
somefile = Upload.new(
:name => "somefile.ext"
)
somefile.upload = File.open("/foo/bar.ext")
somefile.save!
しかし、これはしません:
somefile = Upload.first(:conditions => {:name => "somefile.ext"})
somefile.upload = File.open("/foo/bar.ext")
somefile.save!
何か案は?