【问题标题】:Using Javascript variables to store Ruby Output from <%= %>使用 Javascript 变量存储 <%= %> 的 Ruby 输出
【发布时间】:2019-01-09 13:23:47
【问题描述】:

@tag 是一个字符串。

为什么会这样:

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

但不是这个?

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

提前谢谢你!

【问题讨论】:

    标签: javascript ruby-on-rails ruby erb


    【解决方案1】:

    如果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);
    

    将在div周围生成不带引号的JS:

    tag_tracker = div;
    alert(tag_tracker);
    

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

    【讨论】:

    • 对于字符串,使用&lt;%= @tag.inspect %&gt; 也会输出"div"。虽然inspect 可以用于字符串、整数和数组,但它不适用于哈希。虽然.to_json 会出现在rails 应用程序中。
    猜你喜欢
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 2021-09-07
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多