0

私のグループ モデルには has_many の投稿、投稿には have_many のコメントがあります。

グループの投稿を表示するとき、投稿にある場合は最新のコメントの作成日時、または投稿自体の created_at で並べ替えたいと思います。

そのため、新しいコメントがある場合、古い投稿はリストの先頭に戻ります。

4

2 に答える 2

4

私は少し異なるアプローチに固執します:あなたComment belongs_to :postbelongs_to受け入れ:touchオプション。に設定するtrueと、コメントの変更時に投稿updated_atが自動的に更新されます。このようにして、自分の投稿を の順に並べて自由に表示できますupdated_at

于 2012-11-28T12:32:42.483 に答える
0

commented_at:datetime 列を posts テーブルに追加してから、 before_create コールバックを Post モデルに追加できます。

before_create :set_default_commented_at

def set_default_commented_at
  self.commented_at ||= Time.now
end

そして、:touch を Comment モデルの belongs_to 関連付けに追加します。

belongs_to :post, touch: :commented_at

やはりcommented_at列で注文できるようになります。

于 2012-11-28T12:34:35.730 に答える