mysql - Rails 4 - 如果另一个表中没有特定记录,如何从表中选择数据?

标签 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

用户 1 检查 ID 为 3 的问题已关闭。如何获取问题 ID 1, 2, 4 的输出?

提前谢谢您。

最佳答案

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

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))

关于mysql - Rails 4 - 如果另一个表中没有特定记录,如何从表中选择数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28527894/

相关文章:

ruby - 为什么 Mechanize 不搜索此表格?

ruby - Spec RSpec 模型属性 setter

php - 根据选项值自动完成

mysql - 当数字 = 0 或 > 10 时,计算连续 10 天的天数

mysql - GROUP BY 导致 ORDER BY 不起作用

ruby-on-rails - 如何在相同的两个类之间进行多个 has_and_belongs_to_many 关联?

ruby-on-rails - 如何在 Ruby on Rails 中对按月分组的记录求和

ruby - 如何使用 gsub 提取 youtube 视频的 ID?

php - 如何使用从 mysql 检索的数据填充 Jquery 数据表?

ruby-on-rails - 我还需要源 :gemcutter in Gemfile?