首页 > 解决方案 > 使用 Javascript 变量存储 <%= %> 的 Ruby 输出

问题描述

@tag是一个字符串。

为什么会这样:

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

但不是这个?

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

先感谢您!

标签: javascriptruby-on-railsrubyerb

解决方案


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

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

第一个选项:

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

将生成一个div用引号括起来的正确 JS。:

tag_tracker = "div";
alert(tag_tracker);

第二个:

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

将生成不带引号的 JS div

tag_tracker = div;
alert(tag_tracker);

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


推荐阅读