1

我在我的 Rails 应用程序中使用 AJAX 在需要时呈现 JS 错误消息。它最初可以工作,但一段时间后又回来了,它仍然显示 JS 错误消息,但由于某种原因,它现在也将整个 JS 文件作为 HTML 打印在 window 中。这就是控制器中的调用:

respond_to do |format|
  format.js { render :partial => 'error' }
end

我命名的文件_error.js.erb包含一些不相关的 JS,因为无论它包含什么,Rails 仍然将它打印到窗口。

这是 JS 输出到窗口的样子:(我尝试注释掉 JS 以查看它是否有所不同)

伊姆古尔

4

2 回答 2

1

您可以通过一些修改来尝试:

respond_to do |format|
  format.js
end

在动作内部和视图 act​​ion_name.js.erb 中编写你的 js 代码 ar 如果你想放置你的 erb 然后使用 escape_javascript。

检查以下链接:

为什么在渲染部分之前使用 escape_javascript?

于 2013-09-12T12:50:43.040 回答
0

我做的!万一几年后有人想知道,答案是:你应该把渲染值javascript_tag放在你的 html.erb 中。像这样:

javascript_tag render: 'error'

这会将呈现的内容放在<script>...</script>标签之间并转义所有不必要的代码。

这是关于它的文档

于 2017-09-11T18:38:15.857 回答