@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' будет достаточно - отношение не определяет метод размера, поэтому он делегирует его цели. BTW - использование 'size' вместо' count' - хороший способ избавиться от проблемы N + 1. – BroiSatse