Simple-Stored 基于 CouchPotato 的顶部,用于在 rails 中处理 CouchDb。在尝试将文件上传到我们尝试使用 base64、json post 的 couchdb 时,似乎没有什么能正常工作;我们正在尝试上传到已存储文档的 _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 错误:()