puede que sea un poco más corto:
financial_document.assets ? financial_document.assets.length : '0'
beca use
financial_document.assets == !financial_document.assets.nil?
pero en general, en mi humilde opinión no hay una manera menos repetitiva, solo varias soluciones. (Y esta es una de las cosas que no me gustan tanto en Ruby.) Puedes asegurarte de que los objetos no son nulos (como otras personas sugieren aquí), pero no puedes hacer eso en todas partes. Puede envolver el código de comprobación cero en los métodos de ayuda o en los bloques de inicio y rescate.
Por ejemplo, en lugar de añadir método de longitud de objeto nulo (que en mi humilde opinión es un truco sucio), me escribió un método de ayuda - un "captador de longitud":
def fd_length(financial_document)
financial_document.assets ? financial_document.assets.length : '0'
end
intento fue portado en Ruby 1.8 para Rails 2.3 - ver http://railscasts.com/episodes/152-rails-2-3-extras –