【发布时间】:2014-11-10 10:30:28
【问题描述】:
我按照 Heroku 的文章为我的 Rails 应用程序创建 Direct to S3 文件上传器。 https://devcenter.heroku.com/articles/direct-to-s3-image-uploads-in-rails
我做了教程所说的一切,但我用咖啡脚本编写了js。 (我也把它转换成纯JS并测试了,但我仍然遇到以下问题:
我的 JS 没有拾取为亚马逊预签名帖子创建的对象。
在我的控制器中,在 new 下是:
@s3_direct_post = S3_BUCKET.presigned_post(
key: "#{SecureRandom.uuid}/${filename}",
success_action_status: 201,
acl: :public_read
)
这段代码看起来不错,与文章所说的完全一样。问题出在我的 projects.coffee.erb 中,如下:
formData: '<%= @s3_direct_post.fields.to_json.html_safe %>'
结果:
undefined method `url' for nil:NilClass
我的控制器中的代码应该创建 @s3_direct_post 对象,但我的 JS 没有选择它。执行时:Rails 控制台中的 @s3_direct_post 从 better_errors/binding_of_caller gems 中,对象仍然是 nil。
我在这里缺少什么吗? JS是在对象创建之前执行的吗?
【问题讨论】:
标签: ruby-on-rails amazon-s3 coffeescript