我有一個名爲電影的軌道表。電影正在從API中收集和保存,這意味着某些電影可能有release_date,有些電影可能不會。Rails。除了如果
所有的電影都顯示在主頁上,他們被{|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。 那麼我如何添加一個異常,只顯示電影與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'
我正在嘗試它在生產模式,因爲那是我得到的錯誤。 是的我實際上並沒有將它作爲<% @movie %>在我的代碼中,我只是直接寫入StackO,所以我沒有在Rails Mindset^_ ^編輯它。 – PMP
@PMP,在這種情況下,您可以添加'reject {| m | m.release_date.nil? } @ – vee
@PMP,我不應該忘記告訴你,直接在生產中修改是非常不鼓勵的! – vee