语法错误:期待keyword_then或';'或'\ n'

时间:2014-05-08 09:52:25

标签: html ruby-on-rails-4 partial-views

这段代码的语法错误可能是什么?

<%= if @post.comments != nil %>
<div id="comments">
    <%= render(:partial => "comments/comments", :object => @post_comments) %>
</div>
<%= end %>
它继续告诉我这个:

expecting keyword_then or ';' or '\n' ...nd=( if @post.comments != nil );@output_buffer.safe_append=' ... 
 syntax error, unexpected keyword_end ';@output_buffer.append=( end );@output_buffer.safe_append=' 
 syntax error, unexpected keyword_end, expecting ')' end ^ 
 syntax error, unexpected keyword_ensure, expecting ')' 
 syntax error, unexpected keyword_end, expecting ')'

每当我删除上面的代码块时,代码都没有错误,所以我确定错误是在这部分。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

<%= if @post.comments != nil %>
  ...
<%= end %>

应该使用<%标记而不是<%=,因为它们是控制语句,而不是输出:

<% if @post.comments != nil %>
  ...
<% end %>

您可以在此处找到有关在ERB中使用这些标记的更多信息:http://guides.rubyonrails.org/action_view_overview.html#templates