Rails:如何查找删除父类的记录?

时间:2013-12-16 12:49:20

标签: sql ruby-on-rails ruby activerecord

我想搜索属于不再存在的类别的课程的所有记录。

  1. 课程A是在第1类(不依赖)
  2. 下制作的
  3. 课程A现在有外键category_id = 1
  4. 我们删除第1类
  5. 课程A仍然具有category_id = 1,但该类别不再存在。
  6. 这成为一个问题,因为当我做

    这样的事情时,课程A不会出现
    Course.where(category_id:nil) 
    

    我意识到我可能会在删除类别之前删除属于该类别的所有课程中的category_ids,但鉴于即使删除了父类别后,课程中的category_id值仍然存在,那么“正确”是什么“寻找这些无家可归者课程的方法?

1 个答案:

答案 0 :(得分:1)

如果没有太多类别,您可以使用此

Course.where.not(category_id: Category.pluck(:id))