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
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”。