请问有谁能描述一下在雇员再就业表文件中使用的下列字符的用法:

<%   %>
<%=  %>
<%  -%>
<%#  %>

每一种的用途是什么?


当前回答

<% %>执行其中的代码,但不打印结果,例如: 我们可以将它用于erb文件中的if else。

<% temp = 1 %>
<% if temp == 1%>
  temp is 1
<% else %>
  temp is not 1
<%end%>  

打印temp是否为1


<%= %>执行代码并打印输出,例如: 我们可以打印一个rails变量的值。

<% temp = 1 %>
<%= temp %>  

将打印1


<% -%>没有区别,因为它不打印任何东西,-%>只适用于<%= -%>,这将避免新行。


<%# %>将注释掉在此代码中编写的代码。

其他回答

这些在ruby on rails中使用:-

<% %>:-

<% %>标记用于执行不返回任何内容的Ruby代码,例如条件、循环或块。如:-

<h1>Names of all the people</h1>
<% @people.each do |person| %>
  Name: <%= person.name %><br>
<% end %>

<%= %>:-

用于显示内容。

Name: <%= person.name %><br>

< %—% >:-

Rails扩展了ERB,因此只需在Rails模板中的标记后面添加一个连字符,就可以删除换行符

< % # % >: -

注释掉代码

<%# WRONG %>
Hi, Mr. <% puts "Frodo" %>
<% %>

执行括号内的ruby代码。

<%= %>

将内容打印到erb文件中。

<%== %>

相当于<%= raw %>。逐字打印(即w/o转义)到erb文件。(摘自Ruby on Rails指南)

<% -%>

避免在表达式后换行。

<%# %>

注释掉括号内的代码;不发送到客户端(相对于HTML注释)。

访问Ruby Doc了解更多关于雇员再培训局的信息。

<% %>执行其中的代码,但不打印结果,例如: 我们可以将它用于erb文件中的if else。

<% temp = 1 %>
<% if temp == 1%>
  temp is 1
<% else %>
  temp is not 1
<%end%>  

打印temp是否为1


<%= %>执行代码并打印输出,例如: 我们可以打印一个rails变量的值。

<% temp = 1 %>
<%= temp %>  

将打印1


<% -%>没有区别,因为它不打印任何东西,-%>只适用于<%= -%>,这将避免新行。


<%# %>将注释掉在此代码中编写的代码。

我添加了<%%文字标记分隔符作为答案,因为它是模糊的。这将告诉erb不要解释标签的<%部分,这对于js应用程序(如显示chart.js工具提示等)是必要的。

更新(修复断开链接)

有关雇员再培训局的资料,可在此查阅: https://puppet.com/docs/puppet/5.3/lang_template_erb.html#tags

<% %>和<%-和-%>适用于任何Ruby代码,但不输出结果(例如if语句)。这两个是一样的。

<%= %>用于输出Ruby代码的结果

<%# %>是ERB注释

这里有一个很好的指南: http://api.rubyonrails.org/classes/ActionView/Base.html