私は映画と呼ばれるレールテーブルを持っています。映画は 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 の使用が問題にならないように、release_date のある映画のみを表示する例外を追加するにはどうすればよいでしょうか。
私はもう試した
<% 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'