我有 Post 和 User 模型。每个帖子都属于一个用户。但是,在数据库导入过程中,在某些帖子中输入了一些错误的 user_id。获取 user_ids 不涉及任何用户的帖子的查询是什么?谢谢。
最佳答案
正如@user2553863 已经提到的,Rails 5 添加了对 left_outer_joins
的支持,这意味着您现在可以以高效的方式执行此操作,而无需像这样编写任何 SQL:
Post.left_outer_joins(:user).where(users: {id: nil}).delete_all
这将找到任何孤立的帖子(那些没有用户的帖子)并删除它们。在这里,
user
是关联名称和 users
是连接表的名称。您不必触发额外的 SELECT
查询所有用户 ID,当您有很多用户时,这可能会中断。
关于ruby-on-rails-4 - 用于识别孤立子记录的 ActiveRecord 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32920681/