我有以下基于模型的注释设计(来源: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帖子已删除)?
最佳答案
由于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
关于mysql - Rails,多态关联-查找具有非死关联记录的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8533862/