0

フォーラムで行われた最後の投稿を指す「last_post_id」列を持つフォーラムテーブルがあります。最後のトピックがアクセスできるオブジェクトになるように、メインのフォーラムクエリにそれを含めるにはどうすればよいですか?

これは機能していませんが、私が求めているものを伝えるのに役立ちます

  Forum.all(
    :include    => {:posts => {:foreign_key => "last_post_id"}},
    :order      => "ancestry ASC, display_order ASC", 
  )

「forum.last_post.date」のようなものを使用して最後の投稿オブジェクトにアクセスできるようにしたいと思います。これは可能ですか、最もクリーンな解決策は何ですか?

RAWSQLは次のようになります。

       SELECT forums.*, last_post.*
         FROM forums as forums
    LEFT JOIN posts  as last_post on last_post.id = forums.last_post_id
     ORDER BY ancestry asc, display_order asc
4

1 に答える 1

1
class Forum < ActiveRecord::Base
  has_many :posts
  has_one :last_post, :class_name => 'Post', :primary_key => :last_post_id
end

Forum.all(:include => [:last_post])
于 2012-08-29T09:07:35.110 に答える