0

我有一个博客论坛,我正在尝试显示最新的评论日期时间。我已按评论的 updated_at 对其进行排序,但似乎无法正确显示。

这是在我的帖子索引页面上。

<% @posts.each do |post| %>
    <tr>
     **<td class="updatedAt"><%= post.updated_at.strftime("%a %b %d %l:%M %p") %</td>**
       <td><%= link_to post.title.upcase, post %></td>
       <td><%= image_tag "blip.png"%><%= post.comments.count %></td>
       <td class="createdAt"><%= post.created_at.strftime("%a %b %d %l:%M %p") %</td>
    </tr>
<% end %>

在我尝试过 post.comment.updated_at.strftime(...) 的第一个表数据条目中,我尝试的任何方法似乎都不起作用,但其余代码工作正常,我只需要帮助访问评论的 updated_at 并显示它.

**编辑,updatedAt 类无法正常工作,现在它显示的是帖子的 updated_at,而不是我想要的最新评论。

知识受到赞赏:)

4

1 回答 1

2

A simple way to do this is by using Rails' touch method on the Comment's association with a Post.

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to

Basically, having:

class Comment < ActiveRecord::Base
  belongs_to :post, touch: true
end

means whenever you save a comment, the updated_at of the parent post will be updated. Then you can simply display the post's updated_at as you were doing before.

于 2013-11-14T03:21:00.473 回答