【发布时间】:2014-08-24 07:01:32
【问题描述】:
相关数据由Venue、Match和Broadcast组成,这是一个连接表,前两者还有更多。
在我的Venue 索引页面中,我显示了该场地正在显示的Broadcasts 的数量。我想让这个排序。附加功能是,这应该只涉及 Matchs 在未来,为此我在我的 Broadcast 模型上有一个 active 范围,它将在未来返回匹配的广播。
我想让此列可排序。它的定义是venue.broadcasts.active.count。由于它不是数据库中的列,因此它似乎不可排序,并且由于它涉及随时间变化的范围,因此计数器列默认情况下不起作用,并且实现我自己的列似乎很复杂。有什么好的方法可以让这个排序吗?我不太关心性能。
【问题讨论】:
-
您是否考虑过将计数设为一列? Rails 通过一个特殊的 counter_cache 列提供支持。请参阅 Rails 指南的 counter_cache 部分。
-
@CMaresh 计数器缓存对我不起作用,原因有 1.5 个。一方面,我的是一个范围计数,不确定
counter_cache是否处理它。而 .5 是这是从 php 逐步重写的,所以在完全完成之前,计数器缓存不会保持一致 -
我实际上希望有一种方法可以进行纯文本排序,不可扩展,但我有
标签: ruby-on-rails ruby-on-rails-4 rails-activerecord activeadmin