我使用carrierwave_direct gem將文件直接上傳到S3,一切都很順利。但是,當亞馬遜重定向到success_action_redirect
中指定的URL時,我不會將上傳的文件與對象相關聯。將使用Carrierwave_Direct上傳的文件與對象關聯起來
我的控制器看起來像
def edit
@excel_version = ExcelVersion.find(params[:id])
@uploader = @excel_version.excel_everest_macro
@uploader.success_action_redirect = edit_admin_excel_version_url
end
def update
@excel_version = ExcelVersion.find(params[:id])
@excel_version.assign_attributes(params[:excel_version])
@excel_version.save
end
而且我在我看來一個隱藏的表單字段,看起來像 =的form_for @excel_version做|形式| = form.hidden_field:key
因此,在我的更新操作中,我只使用@excel_version.assign_attributes(params[:excel_version])
,亞馬遜返回的密鑰使它成爲模型就好了。但是,裝載在@excel_version對象上的上傳器沒有獲得url,我無法設置鏈接來下載文件。
關於如何使用S3參數返回給我的任何建議將文件與模型關聯起來作爲carrierwave通常會執行的操作?
謝謝!
P.S.這裏的另一個答案建議閱讀github上的carrier_wave直接文檔,我已經發現並且在這方面沒有幫助。
你可以提供一些關於:鍵值返回的信息嗎?您是否已成功將密鑰值保存到@excel_version?如果是這樣,那麼爲什麼你有一個下載問題?如果你有密鑰,那麼你應該有正確的URL鏈接到上傳的文件...有更多的信息,也許我可以幫助 – FireDragon