@card.submissions
返回此:object.count返回0.但object.any?返回true。发生了什么?
<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
这是对的,今天我学到了一些东西。作为参考,这里是['count'](http://edgeapi.rubyonrails.org/classes/ActiveRecord/Associations/CollectionProxy.html#method-i- count)方法,['any?'](http: //edgeapi.rubyonrails.org/classes/ActiveRecord/Associations/CollectionProxy.html#method-i-any-3F)方法。 – sjagr
菲利普你是对的。返回1.我在同一页上有一个提交表单(我正在用Submission.new初始化它)。我怎么能解决这个问题? (不使用@ card.submission.count ...我认为这样不雅) – alejoriveralara
'@ card.submissions.size'就足够了 - 关系没有定义大小方法,所以它会将它委托给目标。顺便说一句 - 使用'size'而不是'count'是消除N + 1问题的好方法。 – BroiSatse