@card.submissions
powraca w ten sposób:object.count zwraca 0. Ale object.any? zwraca true. Co się dzieje?
<ActiveRecord::Associations::CollectionProxy [#<Submission id: nil, user_id: nil, card_id: 7, created_at: nil, updated_at: nil, text: "">]>
@card.submissions.any?
zwraca true
.
@card.submissions.count
zwraca 0
.
Jakie szukam do wdrożenia jest:
if @card.submissions.any?
render @card.submissions
end
To prawda, dzisiaj nauczyłem się czegoś. Dla odniesienia, tutaj jest metoda ['count'] (http://edgeapi.rubyonrails.org/classes/ActiveRecord/Associations/CollectionProxy.html#method-i-count) i [" any? "] (Http: //edgeapi.rubyonrails.org/classes/ActiveRecord/Associations/CollectionProxy.html#method-i-any-3F) metody. – sjagr
Phillip, masz rację. To zwraca 1. Mam formularz do przesłania (i inicjuję go za pomocą Submission.new) na tej samej stronie. Jak mógłbym rozwiązać ten problem? (bez użycia @ card.submission.count ... co widzę jako nieelegancki) – alejoriveralara
"@ card.submissions.size" byłoby wystarczające - relacja nie definiuje metody size, więc przekaże ją do miejsca docelowego. BTW - używanie 'size' zamiast' count' jest dobrym sposobem na pozbycie się problemu N + 1. – BroiSatse