Carrierwave gemを使用してモデルに添付ファイルをアップロードしています。添付ファイルの全文検索を可能にするために、マッパー添付ファイルプラグインとともにelasticsearchを追加しました。Rodeでbase64にCarrierwaveをエンコードする
Carrierwaveとelasticsearchはうまく動作しますが、フルテキスト検索を行うには、添付ファイルをbase64でエンコードする必要があります。
私はこのチュートリアル(http://rny.io/rails/elasticsearch/2013/08/05/full-text-search-for-attachments-with-rails-and-elasticsearch.html)に従ってきましたが、RailsまたはCarrierwaveに変更が加えられていると想定しています。私はパスを交換する場合
File.open(Base64.encode64(File.read(document.file)))
:具体的には、私はBASE64などの添付ファイルをエンコードしようとしていたとき、私は次のように入力エラーを取得:
no implicit conversion of CarrierWave::SanitizedFile into String
をエラーは、モデルの次の行にあります実際のファイルへのURLでそれはうまく動作します。
私はSOで検索しましたし、私は見つけることができる唯一の関連する答えは私に同じエラーを与える:Carrierwave encode file to base64 as process
は、私は完全なレールの初心者ですとうまくいけば、これは私を除いてすべての人に明らかだものですが、我々はすべてです初心者は、そう?
ありがとうございます!
は、それが簡単に...おかげということであったと信じてすることはできません! – Nick