在Rails中,您可以使用Model.sizeModel.count来查找记录数.如果要处理更复杂的查询,使用一种方法比使用另一种方法有什么优势吗?它们有什么不同?

例如,我的用户有照片.如果我想显示一张用户表以及他们有多少张照片,那么运行user.photos.size的多个实例会比user.photos.count快还是慢?

谢谢

推荐答案

你应该读that,它仍然有效.

您将根据自己的需要调整所使用的功能.

基本上:

  • 如果已经加载了所有条目,比如User.all,那么应该使用length来避免另一个db查询

  • 如果没有加载任何内容,请使用count对数据库进行计数查询

  • 如果你不想为这些考虑而烦恼,可以使用size,这将适应

Ruby-on-rails相关问答推荐

仅当未在带有ENV[';Dyno';]的Heroku问题上运行时才初始化Sidekiq Cron

使用RubyZip处理大型压缩文件:65535个文件的限制

如何从 Rails7.2 中的控制器获取名称空间?

Rails:当 id 方法为非标准时构建关联

线程如何在 Web 应用程序中工作?

无法加载此类文件 -- mysql2/mysql2

Rails 连接并包含连接表中的列

rails 3,简单数组的Kaminari分页

Rails 上的 build 和 new 有什么区别?

在 Rails 的 ActiveRecord 中,touch 有什么用?

fields_for 表单构建器对象为零

如何避免 RSpec 3.0 中 stub_chain 的弃用警告?

Rails 3 中的动态错误页面

如何在 rspec 中运行单个测试?

如何在不删除项目本身的情况下删除单个 HABTM 关联项目?

通过重定向使闪存哈希保持不变

我应该将全局共享部分模板放在哪个文件夹中?

'respond_to' 格式语句中的 `:location => ...` 和 `head :ok` 是什么意思?

Rails:在 link_to 中保留 GET 查询字符串参数

在 Rails 3 中突出显示当前页面的最佳方法? -- 有条件地将css类应用于链接