为什么我的$variable放在再培训局时就像一根绳子

Why is my $variable acting like a string when placed in ERB?

本文关键字:一根 variable 我的 培训局 为什么      更新时间:2023-09-26

JS:

$(this).attr({
    src: "<%= asset_path("''$hoverClass"'-red.jpg') %>"
});

这将输出/assets/$hoverClass-red.jpg而不是/assets/sports-red.jpg("sports"是$hoverClass的值(。

Ruby 不会像这样插值字符串。你的意思是这样的:

<%= asset_path("#{$hoverClass}-red.jpg") %>

需要注意的是,在 Ruby 中使用$前缀变量通常是不好的形式,因为这意味着你要全局声明它们。这不可避免地会导致名称冲突、无意的数据持久性以及许多其他难以确定的问题。尽可能使用@前缀的实例变量。

您也可以像这样实现:

$(this).attr(<%= { src: asset_path("#{$hoverClass}-red.jpg") }.to_json %>);

这通常更可靠,因为正确的 JSON 转义是为您完成的。