对象必须是日期、日期时间或时间对象。没有给出

Object must be a Date, DateTime or Time object. nil given

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

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

当我尝试用空白日期保存时出现此错误,是否有强大的文本解决方案可以让我无需填写就可以保存?

编辑:

====================================== ==================================

在您尝试保存 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 %>

您可以将默认值传递给 localize:

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

只要第一个参数是 nil,就会返回默认值。