ruby-on-rails – ActiveRecord,方法链接和请求执行
发布时间:2020-12-17 02:55:49 所属栏目:百科 来源:网络整理
导读:我目前正在尝试理解ActiveRecord如何工作以链接条件方法然后执行sql请求. 理解方法链接非常简单,我想到的一切都很好地解释并在这里恢复here. 但是,我仍然无法弄清楚,上面的文章没有解释:ActiveRecord如何知道何时执行SQL请求. 例如,如果我编写User.where(so
我目前正在尝试理解ActiveRecord如何工作以链接条件方法然后执行sql请求.
理解方法链接非常简单,我想到的一切都很好地解释并在这里恢复here. 但是,我仍然无法弄清楚,上面的文章没有解释:ActiveRecord如何知道何时执行SQL请求. 例如,如果我编写User.where(some_column:“hello”).limit(5),则ActiveRecord将实例化查询构建器,设置有关some_column值和有限数量结果的条件. 但是,在执行.limit(5)之后,它还执行请求并返回结果:ActiveRecord如何知道?怎么知道它是最终的条件方法,它需要返回一个结果?它是否在每个链接条件下执行SQL请求? 在我上面发表的文章中,作者通过调用最终方法来欺骗,每个方法都在执行请求并返回结果. 解决方法
limit(5)并不比where更特殊,实际上它返回一个ActiveRecord :: Relation,就像在哪里一样.您可以交换链的顺序来证明它.
User.where(some_column: "hello").limit(5) User.limit(5).where(some_column: "hello") 会发生的是,某些方法显式调用(例如在控制器中)或隐式调用(在CLI中)触发查询的执行.这些方法例如: >可以使用的方法,如每个,选择等 只要隐式或显式调用其中一个方法,就会执行查询. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |