Simple-Stored основан на CouchPotato для обработки CouchDb в рельсах. Пытаясь загрузить файлы на couchdb, мы попытались использовать base64, json post и, похоже, ничего не работает; мы пытаемся загрузить в свойства _attachments уже сохраненный документ.
Имея такую модель:
class Patient
include SimplyStored::Couch
end
и в контроллере при получении файла через действие обновления
def update
@patient = Patient.find(params[:id])
if params[:patient][:_attachments]
attachement = params[:patient][:_attachments]
filedata = attachement.tempfile.read
data = Base64.encode64(filedata).gsub(/\n/, '')
type = attachement.content_type
or_name = attachement.original_filename
@patient._attachments = {or_name => {'data' => data, 'content_type' => type}}
@patient.save
return render :json => @patient._attachments
end
end
Теперь самое интересное в том, что я вижу, что у @ Patient__acttachments есть сам файл, и это то, что возвращается в рендере после .save; но на самом деле он не сохраняется в базе данных couchdb.
Любые идеи, почему не выполняется сохранение или я должен попытаться просто вставить _attachment в базу данных couchdb. ? (который, кстати, всегда возвращает ошибку 500 :()