我有一个论坛表,其中包含“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
答案 0 :(得分: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])