簡單存儲基於CouchPotato的頂部用於處理rails中的CouchDb。在嘗試將文件上傳到couchdb的時候,我們嘗試了使用base64,json post以及沒有任何東西可以正常工作。我們正嘗試上傳到已存儲文檔的_attachments屬性。Rails + CouchDb二進制文件上傳到數據庫
有了這樣的模式:
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錯誤:()
我希望他至少邀請了幾個啤酒在這:) – Duopixel 2012-10-11 14:33:21