Rails - html 块的条件显示

Rails - conditional display of html block

在我看来,我使用了 1 个表单,其中包含一个呈现评论的块。我不想在创建新记录时 运行 它。所以,我尝试了这样的条件...

<% unless @annotation_id.nil? %>
<hr>
<div class="row">
  <div class="col-md-8">
    <h4>Comments</h4>
    <%= render @annotation.comments %>
  </div>

  <div class="col-md-4">
    <%= render 'comments/form' %>
  </div>

</div>
<% end %>

然而,这会导致永远不会显示该块 - 当注释记录存在时也是如此。我做错了什么?

使用if @annotation.persisted?unless @annotation.new_record?

您并没有表明您实际上已将 @annotation_id 设置为某项内容。

一种更简单的方法可能是使用 .new_record? 方法,例如:

<% unless @annotation.new_record? %>
  ...
<% end %>