ฉันมีสามตาราง:
- ผู้ใช้
- คำถาม
User_คำถาม
1.คำถามของผู้ใช้มีคอลัมน์ user_id, question_id และ answer
ฉันต้องการค้นหาคำถามสุ่มที่ไม่ได้รับคำตอบ และ จึงไม่มีแถวในตาราง user_questions
หากทุกคำถามได้รับคำตอบแล้ว ให้ส่งคืนคำถามแบบสุ่ม
ฉันได้รับแจ้งว่าสิ่งนี้สามารถทำได้โดยใช้ OUTER JOIN แต่ฉันเป็น SQL noob และฉันไม่แน่ใจว่าจะทำอย่างไรใน Rails
นี่คือสิ่งที่ฉันมี:
def next_question
q = Question.all - Question.joins(:user_questions).where
(user_questions: { user_id: user_id })
q = Question.all if q.empty?
return q[rand(q.size)]
end