Rails, полиморфная ассоциация - найти записи с не мертвыми связанными записями - PullRequest
1 голос
/ 16 декабря 2011

У меня есть следующий дизайн комментариев к моделям (источник: 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...

Как я могу выбрать все записи из таблицы «комментариев», чтобы каждая запись имела не мертвый комментарий («мертвый» означает, что оригинальная запись была удалена) по запросу на основе области?

1 Ответ

0 голосов
/ 18 декабря 2013

Поскольку commentable не существует в случае мертвой возможности комментирования, вы можете сделать что-то вроде этого:

class Comment
  belongs_to :commentable, :polymorphic => true
  scope :non_dead_commentable, where('commentable IS NOT NULL')
end

В рельсах 4 вы можете сделать:

scope :non_dead_commentable, where.not(:commentable => nil)

А потом:

Comment.non_dead_commentable
...