Я использую драгоценный камень Carrierwave для загрузки вложений в мою модель. Я добавил elasticsearch с плагином вложений в mapper для полнотекстового поиска вложений.Кодировка привязки Carrierwave к base64 в Rails
Carrierwave и elasticsearch работают нормально, но для того, чтобы получить полный текстовый поиск, мне нужно закодировать вложение как base64.
Я следовал этому руководству (http://rny.io/rails/elasticsearch/2013/08/05/full-text-search-for-attachments-with-rails-and-elasticsearch.html), но я предполагаю, что произошли некоторые изменения в Rails или Carrierwave, поскольку я не могу заставить его работать. В частности, когда я пытаюсь кодировать вложение как base64, я получаю следующее сообщение об ошибке Тип:
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