gpt4 book ai didi

ruby-on-rails - 如何避免在依赖于 Rails 的销毁中进行 N+1 查询?

转载 作者:行者123 更新时间:2023-12-04 15:20:38 25 4
gpt4 key购买 nike

Class User < ActiveRecord::Base
has_many :posts, dependent: :destroy
end

Class Post < ActiveRecord::Base
belongs_to :user
end
当一个拥有 N 个帖子的用户被销毁时,运行 N+1 个查询来销毁关联的帖子和用户。在这种情况下如何避免急切加载?

最佳答案

您可以使用

dependent: delete_all
它创建了一个 SQL 查询来删除关联的记录,但任何 before_destroy after_destroy回调将不会被调用为 no destroy方法将被调用。
如果您使用的是 Postgres,则需要在外键的原始迁移中传递级联标志才能使其工作
add_foreign_key :some_table, :related_table, on_delete: cascade

关于ruby-on-rails - 如何避免在依赖于 Rails 的销毁中进行 N+1 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63394490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com