我在尝试在 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
。