0

我有一个论坛表,其中有一个“last_post_id”列,它指向论坛中的最后一个帖子。如何将其包含在我的主论坛查询中,以便最后一个主题是我可以访问的对象?

这不起作用,但它有助于传达我所追求的

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

我希望能够使用“forum.last_post.date”之类的内容访问最后一个帖子对象。这可能吗,最干净的解决方案是什么?

RAW sql 应该如下所示:

       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 回答