【问题标题】:single % syntax and #comment in <%= %>are not working in .erb files<%= %> 中的单个 % 语法和 #comment 在 .erb 文件中不起作用
【发布时间】:2011-04-16 07:26:42
【问题描述】:

我刚刚看了http://ruby-doc.org/ruby-1.9/classes/ERB.htmlhttp://ruby-doc.org/ruby-1.8/classes/ERB.html。我看到 1.8 和 1.9 都支持以下内容。

% a line of Ruby code

但是在一行中试了一下

% end ### changed from <% end %>

浏览器只是简单地显示 % end...想知道这里有什么问题吗?

(更新)另一个问题,当#blabla之类的评论出现在= %>时,rails会报错,你知道吗?

我的另一个问题的代码:

<%= @page_title || 'Pragmatic Bookshelf' #magic @page_title; a if a is true, else b%>

谢谢

【问题讨论】:

  • 你能发布你的视图代码和错误吗?
  • @krunal-shah 我怀疑 不允许#comment。不知道我的猜测对不对……

标签: ruby-on-rails ruby-on-rails-3 erb


【解决方案1】:

这是 ERB 中的评论:

<%# Where is pancakes house? %>

这是一个错误:

<%= # I'll cook you some eggs, Margie. %>

您不能将注释和&lt;%= %&gt; 语法结合起来。

在您链接到的文档中,您可能会注意到 可选 -- 请参阅此处的 ERB.new 注释:

% a line of Ruby code -- treated as <% line %> (optional -- see ERB.new)

然后,ERB.new 有话要说:

如果 *trim_mode* 传递一个包含以下一个或多个修饰符的字符串,ERB 将调整其代码生成,如下所示:

% enables Ruby code processing for lines beginning with %

所以您的ERB.new 选项中可能没有*trim_mode*。

【讨论】:

  • 谢谢。但是对于第一个问题,我尝试省略空格但仍然无法正常工作。
  • 允许插入#comment 吗?
  • @mu 太短了,您能解释一下为什么“您不能将注释和 语法结合起来”。 ?
  • @draw:不,我无法解释它,因为我找不到 ERB 的正式语法或规范 :) 我能做的最好的就是说你不被允许,因为ERB 解析器说“不”。在非正式系统中工作有利有弊。
【解决方案2】:

如果 *trim_mode* 传递一个包含以下一个或多个修饰符的字符串,ERB 将调整其代码生成,如下所示:

% 对以 % 开头的行启用 Ruby 代码处理

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    相关资源
    最近更新 更多