2013-07-17 28 views
0

快速分解我的應用程序:我有一首歌曲,評論和用戶模型。用戶可以上傳歌曲並發表評論。未定義的方法'strftime'爲零:NilClass [rails 4]

我似乎在提交(創建)一首歌曲後出現「未定義的方法`strftime'爲零:NilClass」錯誤。如果你去show#songs.html.erb你會看到下面的評論代碼。我研究了瑞恩貝茨如何評論他,並且我的代碼是相同的。不知道爲什麼strftime不工作。請指教:)

注:這是非常值得我運行軌道4

完整的錯誤消息:

NoMethodError in Songs#show 

Showing /Users/apane/Downloads/leap/app/views/songs/show.html.erb where line #34 raised: 

undefined method `strftime' for nil:NilClass 

Extracted source (around line #34): 

<% for comment in @song.comments %> 
<div class="comment"> 
<strong><%= link_to_unless comment.site_url.blank?, h(comment.author_name), h(comment.site_url) %></strong> 
<em>on <%= comment.created_at.strftime('%b %d, %Y at %H:%M') %></em> 
<%=simple_format comment.content %> 
<p> 
<% if can? :update, comment %> 
+0

它的'created_at'不起作用。可能的原因是你沒有自動填充字段(所以它在'Comment'模型中是數據庫中的'NULL',Ruby中'nil')。 –

+0

尼爾,我如何自動填充它?有沒有我應該添加到控制器的代碼行? – Apane101

回答

3

的comment.created_at是nil - 這是你的問題。 這可能是因爲你已經創建了評論,但沒有保存它尚未 。 created_at字段將僅在保存時填充。

+0

我已將這行代碼添加到songs_controller「@comment = @ song.comments.build」,這就是您指出的問題所在。我如何保存評論?如果@ comment.save等..也許? – Apane101

+0

嗨,我可以給你的一個建議是生成一個新的應用程序,創建一些腳手架 - 例如'rails generate scaffold Comment user:integer content:string' - 然後檢查生成的代碼,看看事情應該如何工作 - 我認爲這可以是一個非常好的教訓 - 享受:) – obenda

相關問題