można zrobić to nieco krócej:
financial_document.assets ? financial_document.assets.length : '0'
beca używaj
financial_document.assets == !financial_document.assets.nil?
ale ogólnie rzecz biorąc, IMHO jest nie mniej powtarzalny sposób, tylko różne obejścia. (I to jest jedna z rzeczy, których nie lubię w Ruby.) Możesz upewnić się, że obiekty nie są puste (jak sugerują to inni ludzie) - ale nie możesz tego zrobić wszędzie. Możesz ominąć kod sprawdzający zero w metodach pomocniczych lub blokach ratowania początkowego.
Na przykład, zamiast dodawania metody długości do zera obiektu (co jest IMHO brudny Hack), bym napisał metody pomocnika - jest "długość getter":
def fd_length(financial_document)
financial_document.assets ? financial_document.assets.length : '0'
end
próba została przeniesiona w Ruby Rails 1.8 do 2.3 - patrz http://railscasts.com/episodes/152-rails-2-3-extras –