部分中的NoMethodError

时间:2013-05-03 16:55:14

标签: ruby-on-rails partial nomethoderror

当我尝试访问部分数据时,我收到一个奇怪的错误。

我有一个模型在网络上保存数据。每个网络都有消息,每条消息都有注释。

在我的网络中,我渲染部分消息列表

<%= render :partial => 'messages/message', :collection => @messages %>

随后使用ajax加载消息的内容。在消息部分我呈现评论。

<%= render :partial => 'message_comments/message_comment', :collection => @message.message_comments %>

布局相对简单:

<li class="add_class_here">
    <%= message_comment.created_at %>
    <br />
    <b><%= message_comment.user.name %></b> - <%= message_comment.description %>
    <hr />
</li>

但是message_comment.user.name返回错误

NoMethodError - undefined method `name' for nil:NilClass:
  app/views/message_comments/_message_comment.html.erb:4:in `_app_views_message_comments__message_comment_html_erb___1723361338866444823_70363099486800'

此外,我尝试将创建日期呈现为

<%= message_comment.created_at.strftime("%d %b. %Y") %>

导致

NoMethodError - undefined method `strftime' for nil:NilClass:
  app/views/message_comments/_message_comment.html.erb:2:in `_app_views_message_comments__message_comment_html_erb___1723361338866444823_70363098972860'

在控制台中,我按预期获得输出,因此模型连接正常。也没有空值。如果我删除strftime或名称我得到正常输出 这是怎么回事?

0 个答案:

没有答案