使用 Javascript 变量存储来自 <%= %> 的 Ruby 输出

Using Javascript variables to store Ruby Output from <%= %>

@tag 是一个字符串。

为什么这样做:

tag_tracker = "<%= @tag %>";
alert(tag_tracker);

但不是这个?

tag_tracker = <%= @tag %>; // Why is this not read as a string?
alert(tag_tracker);

提前致谢!

如果您的 ERB 文件中有 JS,您需要确保生成的 javacript 代码是正确的。

假设您有一个字符串 "div" 存储在 @tag

第一个选项:

tag_tracker = "<%= @tag %>";
alert(tag_tracker);

将生成正确的 JS,其中 div 包含在引号中。:

tag_tracker = "div";
alert(tag_tracker);

第二个:

tag_tracker = <%= @tag %>;
alert(tag_tracker);

将生成不带引号的 JS div:

tag_tracker = div;
alert(tag_tracker);

这是不正确的,因为在这种情况下 div 被解释为变量,而不是字符串。