我剛開始學習Rails,我無法嘗試格式化一個時間。我有一個包含許多聯繫人日誌的票證模型,並且我想在視圖中格式化created_at時間戳。當我使用此代碼:未定義的方法錯誤的Rails 3中的strftime
<% @contacts.each do |contact| %>
<p><%= contact.created_at.strftime("%B %e, %Y") %></p>
<p><%= contact.author %></p>
<p><%= contact.description %><p>
<% end %>
打印出與票關聯的聯繫人,網頁顯示錯誤:
undefined method `strftime' for nil:NilClass
然而,當我使用
<% @contacts.each do |contact| %>
<p><%= contact.created_at %></p>
<p><%= contact.author %></p>
<p><%= contact.description %><p>
<% end %>
日期(類似2012-08-26 05:16:15 UTC),以及作者和描述的預期值。
我已經查看了數據庫中聯繫人對象的所有時間戳記值,而且沒有任何其他任何時間以外的created_at值。任何人都可以幫我解決這個問題嗎?
表中的'created_at'值是否爲NULL? –
是否所有'@ contacts'保存到數據庫?如果有一個你剛剛初始化並沒有保存,那麼它的'created_at'確實是零。例如,如果您在控制器中初始化一個新的@contact,並在下一行執行'@contacts = Contact.all',則最後一個Contact不會有'created_at',因爲它尚未保存。 – bevanb
謝謝你們,問題在於我在我的問題的代碼上方顯示了一個新聯繫人的表單,該代碼創建但未保存新聯繫人。 –