class QuestionGroup < ActiveRecord::Base
has_many :questions
end
class Question < ActiveRecord::Base
belongs_to :question_group
has_many :question_answers
has_many :question_users_answers, :through => :question_answers, :source => :user_question_answers
def self.questions_without_answers(user_id)
select {|q| q.question_users_answers.where(:user_id=>user_id).empty?}
end
end
class QuestionAnswer < ActiveRecord::Base
belongs_to :question
has_many :user_question_answers
end
如果没有用户答案,我需要找到所有问题我通过类方法self.questions_without_answers(user_id)
但是我怎样才能找到所有存在 questions_without_answers 和特定用户的 QuestionGroups?
PS:我需要找到所有未回答的问题以及拥有这些问题的所有组,我可以通过find或named-scope来完成吗?
更新:
def self.groups_without_answers(user_id)
questions_ids = Question.questions_without_answers(user_id).map {|q| q.id}
all(:conditions => "id in (select distinct question_group_id from questions where id in (#{questions_ids.join(',')}))")
end
但我认为这不好,或者我错了?