Ruby on rails js.erb文件到底做什么

Ruby on rails js.erb文件到底做什么,ruby-on-rails,Ruby On Rails,我是RoR的新手。我理解MVC模式。html.erb文件负责呈现视图。但是js.erb文件做什么呢?它们是否仅与视图中可能存在的任何jquery相关,或者它们是否也有助于整个视图。请容忍我的出生 谢谢当您执行javascript请求时,控制器的操作将以js.erb响应。例如,通过以下方式请求ajax: link_to '', users_path, remote: true 或 ERB是嵌入式ruby的缩写,任何具有该扩展的东西都可以在其中编写ruby代码。在rails中,这用于动态创建htm

我是RoR的新手。我理解MVC模式。html.erb文件负责呈现视图。但是js.erb文件做什么呢?它们是否仅与视图中可能存在的任何jquery相关,或者它们是否也有助于整个视图。请容忍我的出生


谢谢

当您执行javascript请求时,控制器的操作将以
js.erb
响应。例如,通过以下方式请求ajax:

link_to '', users_path, remote: true


ERB是嵌入式ruby的缩写,任何具有该扩展的东西都可以在其中编写ruby代码。在rails中,这用于动态创建html,但是您也可以动态创建JS文件。假设您有一个包含以下内容的js.erb文件

<% [1,2,3,4,5].each do |i| %>
  alert(<%= i %>);
<% end %>
这将导致向客户端显示5个警报(实际上这不是一个好主意,但我希望您能理解)

JS.ERB(ERB:embedded Ruby)文件是标准的javascript文件。它们位于视图或包含适用于应用程序的自定义JS的应用程序/资产中

如果JS.ERB文件位于view文件夹中,那么控制器可以引用它,并包含任何类型的基于Ruby-on-Rails的代码

如果JS.ERB位于app/assets文件夹中,则它只能引用与资产管道相关的Ruby代码,即:

<%= asset_tag 'image.png' %>


此图像将驻留在app/image中,以便asset_标记检索图像。

我在视图文件夹中有一个js.erb文件。但我无法弄清楚它到底在做什么。即使我删除了它的内容,我也看不到视图中有任何变化。这是js.erb中的行:
$(“ul.products”).append('shared/product_listing',:locals=>{:collection=>@products}))%%>”
js.erb可以通过控制器调用视图文件夹中的文件。每个操作中的respond_to方法可以包含js、json和html响应。因此,当一个JS请求被发送到动作时,它会响应,例如
format.JS{render:partial=>'folder/file',:format=>[:JS]
“文件夹/文件”是您的js.erb的位置。除非有一个js请求被发送到控制器中的“视图”操作,否则您的js当前可能没有做任何事情。js请求可以通过多种方式实现,最明显的是通过
$.ajax'/url/to_action'
或设置:remote=>表单上的true或者是一个详细的解释。现在事情清楚多了。
alert(1);
alert(2);
alert(3);
alert(4);
alert(5);
<%= asset_tag 'image.png' %>