【发布时间】:2015-03-12 00:47:14
【问题描述】:
我刚刚创建了一个简单的 Rails 4.2 应用程序来将文件上传到 S3。我正在尝试关注这篇文章https://devcenter.heroku.com/articles/direct-to-s3-image-uploads-in-rails#submitting-and-rendering-the-images,它看起来像在javascript中<%= @variable %>被解析为字符串。
我试过这个。
这就是我在/users/new中的内容
# GET /users/new
def new
@s3_direct_post = S3_BUCKET.presigned_post(key: "uploads/#{SecureRandom.uuid}/${filename}", success_action_status: 201, acl: :public_read)
@user = User.new
end
这就是我在application.js中尝试过的
window.vaz = <%= @s3_direct_post.url %>;
但是当我做console.log(window.vaz); 时,我得到"<%= @s3_direct_post.url %>" 而不是真正的价值。
我也尝试过 gon,但 gon 在 Rails 4.2 中存在很多问题
我确认@s3_direct_post.url 在控制台中返回了一些东西。
【问题讨论】:
-
一般来说,
<%= @s3_direct_post.url %>替换只发生在 ERB 文件中。这是一件好事 - 否则您需要确保使用该 JavaScript 文件的每个页面都存在@s3_direct_post_url,如果您正在缩小,那就有点问题了。将数据从服务器获取到 JavaScript 的更好方法是向服务器发出 AJAX 请求。
标签: javascript ruby-on-rails heroku amazon-s3