【发布时间】:2013-01-01 09:36:43
【问题描述】:
我正在使用carrierwave_direct gem 将文件直接上传到S3,一切都很顺利。但是,当亚马逊重定向回success_action_redirect 中指定的 URL 时,我没有将上传的文件与对象关联。
我的控制器看起来像
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| = form.hidden_field :key
所以在我的更新操作中我只使用@excel_version.assign_attributes(params[:excel_version])
亚马逊返回的密钥使其进入模型就好了。但是,安装在 @excel_version 对象上的上传程序没有获取 url,我无法设置链接来下载文件。
关于如何使用返回给我的 S3 参数将文件与模型关联起来的任何建议,就像carrierwave 通常会做的那样?
谢谢!
附:此处的另一个答案建议阅读 github 上的carrier_wave 直接文档,我已经并且发现在这方面没有帮助。
【问题讨论】:
-
你能提供更多关于返回的 :key 值的信息吗?您是否成功将键值保存到@excel_version?如果是这样,那么为什么您在下载时遇到问题?如果你有密钥,那么你应该有正确的 URL 链接到上传的文件...更多信息也许我可以提供帮助
标签: ruby-on-rails amazon-s3 carrierwave