0

私のコントローラーには次のものがあります。

def show
  @entry = Entry.find(params[:id])
  @comments = @entry.comments
end

今ビューで:

<% if !@comments.empty? %>
  <% @comments.each do |comment| %>
    <%= comment.id %>
  <% end %>
<% end %>

@comments空ではないことはわかっていますが、ここで次のようになります。beforeステートメント@comments.empty? == true を追加すると、すべて正常に機能します。は、コメントIDを取得します。この新しい行を追加すると、コメントを取得するためのクエリが実行されるように見えますか?この追加の行なしでそれを機能させる理由と方法はありますか?<%= @comments %>ifempty?false

4

2 に答える 2

4

なぜこの声明が必要なのですか?

これはうまくいきます

  <% @comments.each do |comment| %>
    <%= comment.id %>
  <% end %>
于 2012-11-22T20:00:13.130 に答える
1

絶対に使用しないでくださいif !。代わりに を使用しますunless

ここでは、空のチェック ステートメントもまったく必要ありません。.eachいくつかの値がある場合にのみ繰り返します。

于 2012-11-22T20:47:11.663 に答える