< pre>
中显示一行<%= h @stories.inspect %>
并且输出太长,所以我将其更改为
<%= #h @stories.inspect %>
<% @stories.each do |s| %>
<%= h s.inspect %>
<% end %>
(评论第一行)。现在代码将无法编译......说
编译错误
/Users/winterheat/ror/shov2/app/views/stories/index.html.erb:13:语法错误,意外的kENSURE,期待')'
/Users/winterheat/ror/shov2/app/views/stories/index.html.erb:15:语法错误,意外的kEND,期待')'
如果我完全删除该注释行,代码将起作用。我在一本书中想过,据说你可以在ERB中注释掉一些代码吗?
更新:如果我将其更改为
,那就很有趣了<% #h @stories.inspect %>
然后它会编译好......所以显示结果标签&lt;%=%&gt;似乎不喜欢评论。
答案 0 :(得分:6)
将&lt;%=视为含义“将此表达式的值添加到输出流”。没有表达?语法错误。
考虑
output << @stories.inspect
VS
output <<
跟踪如何在erb源中真正处理&lt;%=可能会有所启发。当我开始使用Rails时,我觉得值得付出努力。
答案 1 :(得分:4)
在Ruby / Rails中评论<%= %>
标记的正确方法是<%#= %>
...将注释符号放在等号之前。然后一切都会像魅力一样。
答案 2 :(得分:3)
&lt;%=后面应该是一个Ruby表达式,并替换为result。
没有表达会导致错误
答案 3 :(得分:1)
使用
<% #h @stories.inspect %>
而不是
<%= #h @stories.inspect %>
因为
<%= (I expect something that I can convert to string) %>