Если у меня есть полиморфная связь между 3-мя моделями как:
Комментарий
belongs_to :book, :class_name => 'Book', :foreign_key => 'ref_id', conditions: "comments.ref_type = 'Book'"
belongs_to :article, :class_name => 'Article', :foreign_key => 'ref_id', conditions: "comments.ref_type = 'Article'"
belongs_to :ref, :polymorphic => true
Как я могу выбрать различные значения из столбца Title
моделей Book
и Article
для данного списка комментариев?
Например, если мне нужно перечислить названия книг и статей, для которых были даны комментарии за определенный период времени, то как я могу это сделать? Я могу легко выбрать список комментариев, но как выбрать соответствующие уникальные названия из Book
и Article
?
Например:
Book
+--------------+
| Id | Title |
+----+---------+
| 1 | 'Book1' |
| 2 | 'Book2' |
| 3 | 'Book3' |
+--------------+
Article
+-----------------+
| Id | Title |
+----+------------+
| 1 | 'Article1' |
| 2 | 'Article2' |
+-----------------+
Comments
+--------------------------------------+
| Id | comment | ref_id | ref_type |
+----+------------+--------+-----------+
| 1 | 'comment1' | 1 | Book |
| 2 | 'comment2' | 1 | Book |
| 3 | 'comment3' | 1 | Article |
| 4 | 'comment4' | 3 | Book |
+--------------------------------------+
Мне нужен список заголовков 'Book1'
, 'Book3'
, 'Article1'
.