在 Rails 中使用 'time_ago_in_words' 时为 nil:NilClass 的未定义方法 '>'



我在尝试在 rails 中的 conversation.messages.first(created_at) 上使用 'time_ago_in_words' 函数时遇到一个奇怪的错误:

<% conversations.each do |conversation| %>
  <% user_status = current_user.id == conversation.sender.id ? conversation.recipient : conversation.sender %>
  <li>
    <%= gravatar_for(user_status, size: 50) %>
    <%= link_to user_status.email, conversation_messages_path(conversation),
        remote: true,
        class: "conversation-names #{'current-link' if conversation == conversations.first}" %>
    <span class="delete-message"><%= link_to do %><i class="fa fa-times"></i><% end %></span>
    <p><%= truncate(conversation.messages.first.try(:body)) %><%= time_ago_in_words conversation.messages.first.try(:created_at) %></p>
  </li>
<% end %>

undefined 方法 '>' for nil:NilClass.

冰人一针见血。

在你的<li>在调用.first之前,确保conversation.message存在;否则.first只会返回nil

相关内容

最新更新