ruby-on-rails – Rails中的大小,长度和数量
发布时间:2020-12-16 19:51:51 所属栏目:百科 来源:网络整理
导读:1.9.3p194 :002 u = User.find_by_email("email@mail.ru")1.9.3p194 :005 u.addresses.size = 1 1.9.3p194 :006 u.addresses.length = 1 1.9.3p194 :007 u.addresses.count Rails 3.2.3中的大小,长度和数量没有区别,不是吗? 解决方法 长度将加载所有的对象
1.9.3p194 :002 > u = User.find_by_email("email@mail.ru") 1.9.3p194 :005 > u.addresses.size => 1 1.9.3p194 :006 > u.addresses.length => 1 1.9.3p194 :007 > u.addresses.count Rails 3.2.3中的大小,长度和数量没有区别,不是吗? 解决方法
长度将加载所有的对象只是为了计数它们;就像是:
select * from addresses... 然后返回结果计数. 计数将发布 select count(*) from addresses... 这是更好的,因为我们没有加载所有地址只是为了计数它们 大小更聪明 – 它会检查关联是否已经加载,如果为true,则返回长度(不发出对数据库的调用). 如果您的用户模型中有一个名为address_count的字段,size也会检查counter_cache,那么size将使用该字段进行计数,因此不需要在地址表上发出计数. 如果全部失败,size将在数据库上发出select count(*) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |