У меня есть 3 модели:
Questions
-- belongs_to :user
-- has_many :answers
Answers
-- belongs_to :user
-- belongs_to :question
Users
-- has_many :questions
-- has_many :answers
Как запросить все вопросы, на которые пользователь не ответил?
Я пытался что-то подобное, но он не возвращает никаких вопросов:
Question.includes(:answers).where.not( :answers => { :user_id => current_user.id } )
Обновление
Закончилось делать что-то вроде этого:
class User < ActiveRecord::Base
has_many :answers
has_many :questions, through: :answers
end
class Answer < ActiveRecord::Base
belongs_to :user
belongs_to :question
end
class Question < ActiveRecord::Base
has_many :answers
has_many :users, through: :answers
end
Тогда я могу получить вопросы без ответа, используя:
@answered = current_user.questions
@unanswered = Question.all - @answered_questions