繁体   English   中英

活动记录访问-Rails 4

[英]Active Record Access - Rails 4

如果我有一个模型Rating,则我进行ratings = Rating.all ,然后进行ratings = Rating.all ratings.where ("score = ?", 3) 在第一条语句中,Rails将搜索数据库中的所有额定值,第二条命令会发生什么? Rails将再次访问数据库,还是将使用加载到内存中的评级?

我问是因为我需要所有数据库记录,但是我需要与可能的最少数据库请求隔离在where或等同,那么这种实现的最佳实践是什么?

运行这些查询中的任何一个都不会涉及数据库,那些查询只会创建一个ActiveRecord::Relation对象,只有当您尝试访问数据时,它才会真正运行查询,否则该对象将保留为关系对象,准备被链接与其他方法。

例如,如果您尝试对两种状态的数据进行循环,则将运行2个查询,但是如果对同一个对象循环两次,则数据将被提取一次,并且第二次将获取缓存的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM