我正在使用carrierwave_direct gem 将文件直接上传到S3,一切都很顺利。但是,当亚马逊重定向回 中指定的 URL 时success_action_redirect
,我没有将上传的文件与对象关联。
我的控制器看起来像
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 do |form| = form.hidden_field :key
因此,在我的更新操作中,我只是使用@excel_version.assign_attributes(params[:excel_version])
亚马逊返回的密钥使其进入模型就好了。但是,安装在 @excel_version 对象上的上传程序没有获取 url,我无法设置链接来下载文件。
关于如何使用返回给我的 S3 参数将文件与模型关联起来的任何建议,因为carrierwave 通常会这样做?
谢谢!
PS 此处的另一个答案建议阅读 github 上的carrier_wave 直接文档,我已经并且发现在这方面没有帮助。