Чтобы взять пример, с которым все знакомы, подумайте о 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?
Спасибо.