我正在使用Ruby on Rails 3.我曾尝试在&lt;%=%&gt;中添加#comment,结果证明它无效...并且引发了错误...我的代码是:< / p>
<%= @page_title || 'Pragmatic Bookshelf' #magic @page_title; a if a is true, else b%>
似乎可以将#comment放入&lt; %%&gt;没有等号。我的问题是:为什么会这样?
另外,如何在&lt;%=%&gt;?
中添加评论感谢。
答案 0 :(得分:6)
#comment
运行到一行的末尾,但=
的使用被重写为函数调用,如puts()
如果我们改写
<%= @page_title || 'Pragmatic Bookshelf' #magic @page_title; a if a is true, else b%>
作为
puts(@page_title || 'Pragmatic Bookshelf' #magic @page_title; a if a is true, else b)
很明显,右括号)
是注释的一部分,因此无法正确解析语句。
要解决这个问题,我们可以使用单独的ERB注释块,如下所示:
<%= @page_title || 'Pragmatic Bookshelf' %><%# magic @page_title; a if a is true, else b%>
作为最后一点,使用||
运算符来合并nil变量是一种非常常见的Ruby习语,根本不需要注释。正如史蒂夫麦康奈尔在代码完成中所说,评论应该解释为什么要做某事,而不是如何完成某事。