Rails 4 - 如果在另一个表中不是特定记录,如何从表中选择数据?

时间:2015-02-15 15:49:19

标签: mysql ruby-on-rails ruby activerecord model

我有这个模型时间表:

class Question < ActiveRecord::Base
  has_many :closed_questions
end
class ClosedQuestion < ActiveRecord::Base
  belongs_to :question
  belongs_to :user
end

我正在尝试为用户提取该用户未检查为关闭的所有问题。

示例:

ID | Question
1  | Question A
2  | Question B
3  | Question C
4  | Question D

User 1已将状态为3的问题视为已关闭。如何获取问题ID的输出1, 2, 4

提前谢谢。

1 个答案:

答案 0 :(得分:1)

你可能想尝试这样的事情:

user = User.find(1)
Question.where.not(id: user.closed_questions.pluck(:question_id))

请注意,在Rails 4之前,您可能会将其视为:

user = User.find(1)
Question.where("id NOT IN (?)", user.closed_questions.pluck(:question_id))