在我的控制器中我有:
def show
@entry = Entry.find(params[:id])
@comments = @entry.comments
end
现在在视图中:
<% if !@comments.empty? %>
<% @comments.each do |comment| %>
<%= comment.id %>
<% end %>
<% end %>
我知道@comments
不是空的,但我知道@comments.empty? == true
当我在<%= @comments %>
语句之前添加if
时,一切正常。 empty?
是false
,我收到了评论ID。当我添加这个新行时,看起来像运行查询的查询?知道为什么以及如何在没有这条额外线的情况下使其工作?
答案 0 :(得分:4)
为什么你需要这个陈述?
这将有效
<% @comments.each do |comment| %>
<%= comment.id %>
<% end %>
答案 1 :(得分:1)
永远不要使用if !
。而是使用unless
。
在这里你根本不需要一个空的检查声明。 .each
仅在存在某些值时进行迭代。