如何在js.erb中使用Ruby代码?

How to use Ruby code inside js.erb?

我可以在 js.erb 文件代码中使用 escape_javascript 在模态内渲染部分代码:

$("body").append("<%= escape_javascript(render partial: 'example_partial') %>");
$('#my_modal').modal('show');

但是,我似乎无法获得以下结果:

console.log(<%= @error %>)

ERB 将输出纯字符串。 JS 需要在字符串周围加上引号才能被识别。您在 console.log() 声明中遗漏了它们。

改为:

console.log('<%= @error %>');

您可能还会发现 raw 助手很有用。这将在任何 erb 输出上调用 .to_s.html_safe

console.log('<%= raw @error %>');

详细了解 html_safe here