Carrierwave gem을 사용하여 모델에 첨부 파일을 업로드하고 있습니다. 첨부 파일의 전체 텍스트 검색을 허용하는 mapper 첨부 파일 플러그인이있는 elasticsearch를 추가했습니다.레일에서 base64로 Carrierwave 인코딩을 인코딩하십시오.
Carrierwave 및 elasticsearch는 정상적으로 작동하지만 전체 텍스트 검색을 수행하려면 첨부 파일을 base64로 인코딩해야합니다.
나는이 튜토리얼 (http://rny.io/rails/elasticsearch/2013/08/05/full-text-search-for-attachments-with-rails-and-elasticsearch.html)을 따라 갔지만 레일스 나 캐리어 웨이브에 어떤 변화가 있었다고 가정한다. 나는 64 기수로 첨부 파일을 인코딩하려고 할 때 특히, 나는 다음과 같은 유형의 오류가 발생합니다 :
no implicit conversion of CarrierWave::SanitizedFile into String
오류는 모델의 다음 줄에 : 나는 경로를 교체 할 경우
File.open(Base64.encode64(File.read(document.file)))
실제 파일에 대한 URL은 잘 작동합니다.
나는 SO 검색 한 내가 찾을 수있는 유일한 관련 대답은 나에게 같은 오류 제공 : Carrierwave encode file to base64 as process
나는 완전한 레일 초보자 오전 희망이 나를 제외하고 모든 사람에게 분명 무언가이다, 그러나 우리는 모든 것을 초보자, 처음?
감사합니다.
는 것을 쉽게 ... 덕분 믿을 수 없어! – Nick