gpt4 book ai didi

ruby-on-rails - Rails 3 ActiveRecord 方法链,在幕后

转载 作者:行者123 更新时间:2023-12-03 16:18:04 24 4
gpt4 key购买 nike

假设您构建了一个涉及多个方法链的查询,例如

Post.where('id > 10').limit(20).order('id asc').except(:order)

我想知道幕后发生了什么?据推测,链的每个部分都将有助于构建 SQL SELECT,一旦链“完成”,就会执行语句、创建模型等。它如何“知道”链的末端在哪里?每个方法是否返回一个 ActiveRecord::Relation 来创建一个 SQL 片段?

最佳答案

你是对的,每一个都返回一个 ActiveRecord::Relation .每个方法调用都建立在它被调用的关系上(除了第一个,它显然没有什么可建立的,因为它不是在关系上调用的),并返回那个。

它“知道”链的末端在哪里,因为在您尝试操作/访问数据之前,查询实际上并未执行,并且这样做(通常是隐式地)称为 to_a 运行 exec_queries .

关于ruby-on-rails - Rails 3 ActiveRecord 方法链,在幕后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9493904/

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