ruby-on-rails-4 - 用于识别孤立子记录的 ActiveRecord 查询

标签 ruby-on-rails-4 activerecord query-string postgresql-9.3

我有 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/

相关文章:

ruby-on-rails - 如何在特定线路上运行 RSpec 测试?

ruby-on-rails - 为什么 ActiveRecord 在引发 StatementInvalid 错误后返回一个空数组?

c# - Azure 搜索查询字符串中的文字 & 符号

ruby-on-rails - rails : Delete associated records on object destroy

mysql - 配置/设置 Rails 应用程序以同时使用 Mongodb 和 Mysql

spring-boot - 响应式 Spring 查询参数

reporting-services - 报告管理器 - "Select all"作为某些链接报告的默认值

css - 在 Rails 4 表单中将类添加到 grouped_options_for_select

ruby-on-rails - rails : Namespacing vs Engines?

ruby-on-rails-4 - Rollbar 处理项目时出错:Net::OpenTimeout,执行已过期