2
votes

L'objet doit être un objet Date, DateHeure ou Heure. nul donné

Object must be a Date, DateTime or Time object. nil given.
Extracted source (around line #23):                  

        <td><%= localize(movie.release_date, format: :long) %></td>
when I try to save with the blank date this error occurs, is there a strong textsolution where I can save without needing to fill it?EDIT:==========================================================================

0 commentaires

3 Réponses :


1
votes

Après avoir essayé d'enregistrer le film et que cela a échoué, regardez l'erreur qui en résulte et affichez également les erreurs sur cet objet, par exemple

movie.errors.full_messages

Cela devrait donner vous en savoir plus sur les raisons de l’échec.


1 commentaires

regarde, je mets des images maintenant, navigateur et terminal



1
votes

Votre localize déteste les valeurs nil , alors ne lui en donnez pas une.

Hacky mais court:

<% unless movie.release_date.nil? %>
  <td><%= localize(movie.release_date, format: :long) %></td>
<% end %>

Belle et longue:

<td><%= movie.release_date && localize(movie.release_date, format: :long) %></td>


0 commentaires

3
votes

Vous pouvez passer une valeur par défaut à localize :

<td><%= localize(movie.release_date, format: :long, default: '-') %></td>

La valeur par défaut est renvoyée chaque fois que le premier argument est nil .


2 commentaires

Agréable. OP, cette réponse est meilleure que la mienne pour votre scénario.


gentil, merci Stefan! : D u et Amadan m'ont beaucoup aidé!