了解 rails 代码运行的地点和时间(js.erb)
understanding where and when rails code runs( js.erb)
我需要解释 javascript 文件中的 ruby 代码是如何在 rails 中执行的。
我需要知道为什么下面的代码会 运行
var path = '<%= "#{Rails.root}/public/time_table/time_table.json" %>';
和
<% file = File.new("#{Rails.root}/public/time_table/time_table.json",'r') %>
不会。
JavaScript 文件何时何地在 rails 中执行。
当应用程序在 filename.js.erb 文件中看到 ruby 代码语法时,它如何处理它。请我真的需要这个解释。
JavaScript在浏览器中执行。 js.erb
文件是将在浏览器中发送和执行的代码的 模板 。
在您的第一个示例中,ERB 模板将导致:
var path = '/path/to/root/public/time_table/time_table.json';
此 JavaScript 将由浏览器发送 运行。
在您的第二个示例中,您不会在输出中插入任何文本(您使用 <%
而不是 <%=
)。 <%
和%>
之间的代码是Ruby。它打开文件进行读取并分配给 file
。 它不读取文件或以其他方式将任何内容插入输出。
通常,ERB
用于生成将发送到浏览器的内容。 html.erb
用于 HTML 代码。 js.erb
用于 JavaScript 代码。模板在服务器上展开,结果输出发送到浏览器。
根据评论添加。要显示文件的内容,您需要阅读它。 File.new
只是打开它并允许您操作文件(读、写、t运行cate 等)。我建议您使用 File.read
阅读文件并将其插入模板:
<%= raw File.read("#{Rails.root}/public/time_table/time_table.json") %>
您也可以考虑将文件移动到部分文件,例如app/views/time_tables/_time_table.json.erb
并在控制器中渲染:
render partial: 'time_tables/time_table.json.erb'
我需要解释 javascript 文件中的 ruby 代码是如何在 rails 中执行的。 我需要知道为什么下面的代码会 运行
var path = '<%= "#{Rails.root}/public/time_table/time_table.json" %>';
和
<% file = File.new("#{Rails.root}/public/time_table/time_table.json",'r') %>
不会。 JavaScript 文件何时何地在 rails 中执行。 当应用程序在 filename.js.erb 文件中看到 ruby 代码语法时,它如何处理它。请我真的需要这个解释。
JavaScript在浏览器中执行。 js.erb
文件是将在浏览器中发送和执行的代码的 模板 。
在您的第一个示例中,ERB 模板将导致:
var path = '/path/to/root/public/time_table/time_table.json';
此 JavaScript 将由浏览器发送 运行。
在您的第二个示例中,您不会在输出中插入任何文本(您使用 <%
而不是 <%=
)。 <%
和%>
之间的代码是Ruby。它打开文件进行读取并分配给 file
。 它不读取文件或以其他方式将任何内容插入输出。
通常,ERB
用于生成将发送到浏览器的内容。 html.erb
用于 HTML 代码。 js.erb
用于 JavaScript 代码。模板在服务器上展开,结果输出发送到浏览器。
根据评论添加。要显示文件的内容,您需要阅读它。 File.new
只是打开它并允许您操作文件(读、写、t运行cate 等)。我建议您使用 File.read
阅读文件并将其插入模板:
<%= raw File.read("#{Rails.root}/public/time_table/time_table.json") %>
您也可以考虑将文件移动到部分文件,例如app/views/time_tables/_time_table.json.erb
并在控制器中渲染:
render partial: 'time_tables/time_table.json.erb'