我有一个名为 Movies 的 rails 表。电影是从 API 收集和保存的,这意味着有些电影可能有 release_date 而有些可能没有。
所有电影都显示在主页上,并按{|t| - t.release_date.strftime("%Y%m%d").to_i}
<% @movies.sort_by{|t| - t.release_date.strftime("%Y%m%d").to_i}.each do |movie| %>
<% movie.title %>
<% movie.release_date.strftime("%Y") %>
<% end %>
因此,此代码可以正常工作,但前提是返回的电影有发布日期。如果他们没有分配发布日期,它会给我以下错误。
ActionView::Template::Error (undefined method `strftime' for nil:NilClass):
但是如果电影没有发布日期,我只会收到此错误。那么如何添加一个例外以仅显示带有 release_date 的电影,使用 strftime 将不再是问题。
我试过了
<% unless movie.release_date.blank? %>
<% @movies.sort_by{|t| - t.release_date.strftime("%Y%m%d").to_i}.each do |movie| %>
<% @movie.title %>
<% @movie.release_date.strftime("%Y") %>
<% end %>
<% end %>
但这不起作用,因为它给出了undefined method for 'movie'