JS:
$(this).attr({
src: "<%= asset_path("\\$hoverClass"'-red.jpg') %>"
});
输出/assets/$hoverClass-red.jpg而不是/assets/sports-red.jpg('sports'是$ hoverClass的值)。
答案 0 :(得分:3)
Ruby不会像这样插入字符串。你的意思是:
<%= asset_path("#{$hoverClass}-red.jpg") %>
作为一个注释,在Ruby中使用$
- 前缀变量通常是不好的形式,因为它意味着你在全局声明它们。这不可避免地导致名称冲突,无意中的数据持久性以及许多难以确定的其他问题。尽可能使用@
- 前缀实例变量。
你也可以这样做:
$(this).attr(<%= { src: asset_path("#{$hoverClass}-red.jpg") }.to_json %>);
由于为您完成了正确的JSON转义,因此通常更可靠。