Объект должен быть объектом Date, DateTime или Time. ноль дан
Object must be a Date, DateTime or Time object. nil given.
Extracted source (around line #23):
<td><%= localize(movie.release_date, format: :long) %></td>
когда я пытаюсь сохранить с пустой датой, возникает эта ошибка, существует ли сильное решение для текстов, где я могу сохранить без необходимости ее заполнения?
РЕДАКТИРОВАТЬ:
h ttps://s tackru.com/images/c4093cac1f309d5117c49155e4c7882ffeece166.png
==========================================================================
h ttps://s tackru.com/images/9d9d0e062504b828c7d17d8ae951ee41c81adb68.png
3 ответа
Вы можете передать значение по умолчанию localize
:
<td><%= localize(movie.release_date, format: :long, default: '-') %></td>
Значение по умолчанию возвращается всякий раз, когда первый аргумент nil
,
После того, как вы попытаетесь сохранить movie
и это не удается, посмотрите на полученную ошибку, а также отобразите ошибки на этом объекте, например
movie.errors.full_messages
Это должно дать вам более подробную информацию о том, почему это не удалось.
Ваш localize
ненавидит nil
значения, так что не указывайте это.
Хаки, но короткие:
<td><%= movie.release_date && localize(movie.release_date, format: :long) %></td>
Красиво и долго:
<% unless movie.release_date.nil? %>
<td><%= localize(movie.release_date, format: :long) %></td>
<% end %>