jjzjj

ActiveRelation

全部标签

ruby-on-rails - rails : Prevent will_paginate from calling #count of ActiveRelation

当我向will_paginate传递一个ActiveRelation时,它总是调用它的#count方法并访问数据库以找出项目的总数。但是这个操作需要时间,而且我已经缓存并准备好了总数。我可以将这个预先计算的计数传递给will_paginate并阻止它访问数据库吗?我尝试了:count选项,但它作为选项传递给了ActiveRecord:active_relation.paginate(page:2,per_page:100,count:total_count)谢谢!:) 最佳答案 通过:total_entries传递缓存计数解决了问题

ruby-on-rails - 编写多行 ActiveRelation 查询的惯用方法是什么?

我的应用程序中有许多多行ActiveRelation查询方法,我不确定编写这些方法的最惯用方式。看看这个例子:defpostal_code_ids_within(miles)nearby_postal_codes=PostalCode.where("latitude>:min_latandlatitude:min_lonandlongitude我觉得有点不对劲。从中返回ActiveRelation对象的block似乎是惯用的,但我还没有看到这种方法。什么是标准? 最佳答案 根据Brian的建议,这更易读并且效果很好。scope:ne

ruby - 有没有办法从 ActiveRelation 对象中删除分页?

假设我们在Controller的某处有@posts=Post.published.per(10).page(params[:page])。稍后我们需要更新所有已发布的帖子(Post.published)。应该如何去除分页?@posts.limit(false).offset(false)似乎可以解决问题,但我认为应该有其他方式,一种更高级的方式(类似于@posts.without_pagination). 最佳答案 由于page方法是由kaminari提供的,我不确定kaminari是否也提供类似without_pagination

ruby-on-rails - ActiveRelation 将如何影响 rails 的 includes() 功能?

我查看了Arel源代码和一些Rails3.0的activerecord源代码,但关于Arel是否会改变我们使用includes()的能力,我似乎​​无法为自己收集到一个好的答案,在构造查询时,为了更好。在2.3.5和之前的版本中,有些人可能想要修改activerecord:include查询的条件,以获取将返回的关联记录。但据我所知,这在编程上对所有:include查询都站不住脚:(我知道一些AR-find-includes使所有属性的t#{n}.c#{m}重命名,并且可以想象向这些查询添加条件以限制连接集的结果;但其他人做n_joins+1次迭代查询id集,我不确定如何破解AR来编辑