ruby-on-rails – object.count返回0.但是object.any?返回true.发生了什么?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – object.count返回0.但是object.any?返回true.发生了什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@ card.submissions返回:
<ActiveRecord::Associations::CollectionProxy [#<Submission id: nil,user_id: nil,card_id: 7,created_at: nil,updated_at: nil,text: "">]>

@ card.submissions.any?返回true.

@ card.submissions.count返回0.

我想要实现的是:

if @card.submissions.any?
  render @card.submissions
end

解决方法

看起来Submission是一条新记录(因为id是nil).如果它是新的,它还没有进入数据库. count对数据库进行sql调用以确定行数,因此正确返回零.任何?由于集合中有一个对象,因此返回true.

如果您尝试@ card.submissions.to_a.size(确保从数据库加载它们然后检查数组的大小)会发生什么.

猜你在找的Ruby相关文章