我是Ruby的新手,我发现<%= @my_variable %>
有点冗长且不太可读。 erb不应该有类似${@my_variable}
的东西(就像Java中古老的Velocity引擎一样)吗?
答案 0 :(得分:4)
erb,顾名思义,适用于嵌入式ruby代码。除了以下公认的标签之外,我认为它没有任何其他语法:
<% 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
如果您不喜欢erb语法,那么Ruby还有其他替代模板引擎。请查看Haml,Liquid,Mustache或Tenjin。
答案 1 :(得分:2)
根据ERB documentation,我猜答案是否定的。
ERB识别所提供模板中的某些标签,并根据以下规则对其进行转换:
&lt;%Ruby代码 - 内联输出%&gt;
&lt;%= Ruby表达式 - 替换为结果%&gt;
&lt;%#comment - ignored - 在测试%&gt;时很有用 %一行Ruby代码 - 被视为&lt;%line%&gt; (可选 - 见ERB.new)
如果行上的第一件事和%处理使用了,则%%替换为% &lt; %%或%%&gt; - 替换为&lt;%或%&gt;分别
所有其他文本都通过ERB过滤未更改。