我是RoR的新秀。我理解MVC模型。 html.erb文件负责呈现视图。但是js.erb文件做了什么?它们仅与视图中可能存在的任何jquery相关,或者它们是否也对整体视图有贡献。请忍受我的天真。
由于
答案 0 :(得分:1)
JS.ERB(ERB:嵌入式Ruby)文件是标准的javascript文件。它们位于视图中,或者包含适用于应用程序的自定义JS的app / assets。
如果JS.ERB文件位于视图文件夹中,它可以被控制器引用并包含任何类型的基于Ruby on Rails的代码。
如果JS.ERB位于app / assets文件夹中,它只能引用与Asset Pipeline相关的Ruby代码,即:
<%= asset_tag 'image.png' %>
此图像将驻留在app / image中,以便asset_tag检索图像。
答案 1 :(得分:0)
当您执行javascript请求时,您的控制器操作将以js.erb
回复。例如ajax请求通过:
link_to '', users_path, remote: true
或
form_for @user, remote: true
答案 2 :(得分:0)
ERB是嵌入式ruby的缩写,任何具有该扩展名的东西都可以写入ruby代码。在rails中,这用于动态创建html,但您也可以动态创建JS文件。想象一下,你有一个带有以下内容的js.erb文件
<% [1,2,3,4,5].each do |i| %>
alert(<%= i %>);
<% end %>
这将呈现以下javascript:
alert(1);
alert(2);
alert(3);
alert(4);
alert(5);
这将导致向客户显示5个警报(在实践中不是一个好主意,但我希望你能得到这个想法)