ActiveRecord - запросов полиморфных ассоциаций

я использую ассоциаций полиморфных отслеживать Комментарии в мой проект. Все очень прямо вперед вещи.

проблема, которую я имею в запрос базируется на ассоциации полиморфных и joinging от Комментариев модель возвращается к своему владельцу.

Итак ...

у меня есть Комментарий модели

class Comment < ActiveRecord::Base
  belongs_to :commentable, :polymorphic => true
end

И ForumTopics режим:

class ForumTopic < ActiveRecord::Base
  has_many :comments, :as => :commentable
end

у меня есть несколько других "commentable" модели, которые не важно сейчас.Все это работает.

то, Что я пытаюсь сделать, это найти все Комментарии, которые относятся к ForumTopic с заданному условию (в данном случае, 'избранные' == true).

Когда я пытаюсь использовать finder, чтобы присоединиться к модели:

@comments = Comment.find(:all 
            :joins => :commentable
            :conditions => ["forum_topics.featured = ? ", true] 
            )

я получаю следующее сообщение об ошибке:

не Может нетерпением загрузить ассоциации полиморфных :commentable

с Помощью АР "включают в себя синтаксис":

@comments = Comment.find(:all 
            :include => :forum_topics
            :conditions => ["forum_topics.featured = ? ", true] 
            )

возвращает:

*Ассоциация с именем 'forum_topics " не найден; возможно, вы ошиблись в написании?*

Если я попробую вступить с именем таблицы вместо наименование ассоциации (string вместо символа):

@comments = Comment.find(:all,
            :joins => "forum_topics",
            :conditions => ["forum_topics.featured = ? ", true] 
            )

я вижу:

Mysql::Ошибка: Неизвестный таблице " комментарии " : ВЫБЕРИТЕ комментарии. ОТ комментариев forum_topics ГДЕ (forum_topics.featured = 1 )*

(здесь Вы можете видеть, что синтаксис базового запроса полностью отключено, и присоединиться отсутствует вообще).

Не уверен, что то, что я делаю, - это даже возможно, есть и другие способы, чтобы добиться искомого результата, но, кажется, должны быть выполнимо.

какие-то идеи?Ничего мне не хватает?

Найдено 3 ответа:

ActiveRecord - querying polymorphic associations

http://stackoverflow.com/questions/680141/activerecord-querying-polymorphic-associations

Посмотреть решение →