【发布时间】:2015-03-10 05:47:59
【问题描述】:
我正在尝试按照这个示例将 Ruby 代码嵌入到我的 application.js 中 How do I properly put embedded ruby code in to JavaScript?
但是当我把这条线:
var formData = <%= @s3_direct_post.fields.to_json.html_safe %>;
我得到“语法错误:预期的表达式,得到'
我看到过关于其他类似问题的建议,可以像这样在 Ruby 代码周围加上引号:
var formData = '<%s3_direct_post.fields.to_json.html_safe %>';
但随后变量变为字符串<%s3_direct_post.fields.to_json.html_safe %>,而不是执行Ruby并将结果放入字符串中。
仅供参考,我正在学习一个教程 (https://devcenter.heroku.com/articles/direct-to-s3-image-uploads-in-rails),所以我可能没有正确设置。
【问题讨论】:
-
这不是 JavaScript。生成 JavaScript 的是 ERb,因此您需要对其进行预处理。如果按原样提供,将无法解释。这一行在哪里(哪个文件,哪个目录),你是如何渲染它的?
-
var formData = #{@s3_direct_post.fields.to_json.html_safe} -
它在 app/assets/javascripts/application.js 中。你怎么渲染它是什么意思?
-
Sontya 给了我“SyntaxError: 非法字符”
-
你在哪里写这段代码?
标签: javascript ruby-on-rails ruby