Ruby on Rails中< %% =的含义是什么?

时间:2016-11-08 12:36:14

标签: ruby-on-rails ruby

我无法在任何地方找到它,但在我正在合作的项目中。 它的工作方式与<%=(我试图改变)的方式相同,但我无法理解其中的差异。

<span class="option-content" placeholder="<%=t('pages.edit.option')%>">
  <%%= content %>
</span>

2 个答案:

答案 0 :(得分:3)

ERB停靠栏here

<% Ruby code -- inline with output %>
<%= Ruby expression -- replace with result %>
<%# comment -- ignored -- useful in testing %>
% a line of Ruby code -- treated as <% line %> (optional -- see ERB.new)
%% replaced with % if first thing on a line and % processing is used
<%% or %%> -- replace with <% or %> respectively

这意味着

<%%= content %>

将替换为

<%= value of content %>

答案 1 :(得分:1)

简而言之, ERb将双百分比标记为单百分比。

看起来您正在使用一层ERb模板来生成另一层ERb模板。

ERb的第一层不需要名为content的变量,只需要t方法:

<span class="option-content" placeholder="<%=t('pages.edit.option')%>">
  <%%= content %>
</span>

渲染第一层以生成第二层:

<span class="option-content" placeholder="Edit">
  <%= content %>
</span>

如您所见,这也是一个ERb模板。我期待其他东西,稍后,采用第二个ERb并使用它来渲染类似于:

<span class="option-content" placeholder="Edit">
  Hello, world.
</span>