has_many через несколько моделей с уникальным источником

Чтобы взять пример, с которым все знакомы, подумайте о StackOverflow. Пользователь has_many: questions , has_many: answers и ее вопросы и ответы могут быть прокомментированы. (Комментарий полиморфен).

Я хочу получить все ответы, адресованные конкретному пользователю, через комментарий либо к его вопросам, либо к ответам:

class User < ActiveRecord::Base
  has_many :questions
  has_many :answers
  has_many :comments
  has_many :responses, through: [:questions, :answers], source: :comments
end

class Question < ActiveRecord::Base
  belongs_to :user
  has_many :answers
  has_many :comments, as: :commentable
end

class Answer < ActiveRecord::Base
  belongs_to :user
  belongs_to :question
  has_many :comments, as: :commentable
end

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

Конечно, has_many: answers, через: [: вопросы,: ответы], источник :: comments не работает.

Есть ли способ сделать это в Rails?

Спасибо.

7
задан Damien 14 December 2011 в 17:59
поделиться