Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Rails:如何查找父类被删除的记录?_Sql_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

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

Sql Rails:如何查找父类被删除的记录?,sql,ruby-on-rails,ruby,activerecord,Sql,Ruby On Rails,Ruby,Activerecord,我想搜索属于不再存在的类别的所有课程记录 课程A属于第1类(非独立) 课程A现在有外键类别\u id=1 我们删除第1类 课程A仍然有类别_id=1,但该类别不再存在 这成为一个问题,因为当我做类似的事情时,课程a不会出现 Course.where(category_id:nil) 我意识到我可能会在删除类别之前删除属于该类别的所有课程中的类别id,但如果即使删除了父类别,类别id值仍然存在于课程中,那么“正确”是什么搜索这些无家可归者课程的方法?如果没有太多类别,您可以使用此 Course

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

  • 课程A属于第1类(非独立)
  • 课程A现在有外键类别\u id=1
  • 我们删除第1类
  • 课程A仍然有类别_id=1,但该类别不再存在
  • 这成为一个问题,因为当我做类似的事情时,课程a不会出现

    Course.where(category_id:nil) 
    

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

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

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

    如果我没记错的话,
    not
    是在Rails 4的
    QueryMethods
    中添加的。我记得是一样的:)但那没关系,你可以在Rails 3的
    Course.where('category\u id not in',category.pulk(:id))
    中硬编码“not”。