Чтобы взять пример, с которым все знакомы, подумайте о 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 :responses, through: [:questions, :answers], source: :comments
не работает.
Есть ли способ Rails сделать это?
Спасибо.