【发布时间】:2012-03-07 04:39:06
【问题描述】:
我有三张桌子:
- 用户
- 问题
-
用户问题
1.user questions有user_id、question_id和answer列
我想找到一个尚未回答的随机问题,因此在 user_questions 表中没有一行。
如果每个问题都已回答,则返回任意随机问题。
有人告诉我这可以通过 OUTER JOIN 完成,但我是一个 SQL 新手,我不知道如何在 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
【问题讨论】:
标签: sql ruby-on-rails ruby-on-rails-3 activerecord