我有以下模特评论设计(来源:http://railscasts.com/episodes/154-polymorphic-association):
class Comment
belongs_to :commentable, :polymorphic => true
end
class Post
has_many :comments, as => :commentable
end
class Message
has_many :comments, :as => :commentable
end
etc...
如何从“评论”表中选择所有记录,以便每个记录都有基于范围的查询的非死评论(死意味着原始fx帖子被删除)?
答案 0 :(得分:0)
由于commentable
在死亡可评论的情况下不存在,您可以这样做:
class Comment
belongs_to :commentable, :polymorphic => true
scope :non_dead_commentable, where('commentable IS NOT NULL')
end
在rails 4中,你可以这样做:
scope :non_dead_commentable, where.not(:commentable => nil)
然后:
Comment.non_dead_commentable