tre opzioni:
1) Assicurarsi non hai mai una data nil. Dipende dal prodotto che stai cercando di creare, ma in molti casi non avrebbe senso visualizzare una data nil. Se, per il tuo prodotto, le date nul sono ragionevoli, questo non funzionerà.
2) codice della vista in tutto il mondo per nascondere il nil:
<%= order.ship_date ? l(order.ship_date, :format => :long) : 'Date unavailable' %>
3) Scrivere una funzione di supporto per fare questo per voi:
def display_date(date, message='Date unavailable')
date ? l(date, :format => :long) : message
end
Poi tutto quello che dovete fare in ogni luogo si desidera che questo trattamento è data da dire:
<%= display_date(order.ship_date) %>
Nel mio caso, io sto usando un 'text_field' e il fail-safe funziona bene. Grazie! Il risultato è: '<% = f.text_field: due_data,: valore => (l (order.due_date) se order.due_date.present?)%>' –