0

create.js.erb我的视图文件夹中有一个名为的 js 文件。当我尝试创建记录时应该调用它,但它没有被调用。我不知道为什么,老实说,我什至不知道我的应用程序如何调用视图文件夹中的 js 文件,所以我不确定在此处粘贴什么代码来帮助调试问题。

谁能向我解释视图文件夹中的 js 是如何执行的,以及何时我想将 js 文件放在我的视图文件夹中而不是资产管道中?

4

1 回答 1

1

*.js.erb 文件在您将 AJAX/JS 与控制器操作一起使用时呈现。默认情况下,当您调用 create 方法时,Rails 将使用 HTML 响应。这将加载一个新页面。有时您想改用 AJAX,这就是您在视图文件夹中创建 js.erb 文件的原因。

为此,您使用的表单和/或 link_to 对象必须启用 AJAX(它们应该有一个:remote => true属性)如果它们没有被指定为远程表单,它们将执行 HTML 而不是 JS 和 create。 js.erb 文件永远不会被调用。

你的控制器方法还需要知道如何响应 js 请求。你需要类似的东西:

respond_to do |format|
  format.js
end

该代码告诉 Rails 在您的视图文件夹中查找名为“method”.js.erb 的文件,因此在本例中为 create.js.erb。

这些文件与您放在资产管道中的常规 JS 文件完全不同——这些是作为控制器操作的结果呈现的视图模板。

您可能会发现一些 Rails/AJAX 教程很有帮助……这里有一个很好的教程可以引导您完成整个过程:

http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3

希望对您有所帮助,如果您需要更多帮助,请发布您的控制器和任何视图文件的代码...

于 2013-09-10T21:50:00.353 回答