我正在使用Ransack Gem并通过计数器缓存进行计数排序.我的属性是一个整数.
我这样称呼它:
<%= sort_link(@q,:people_count,"PEOPLE") %>
我得到的排序输出是:
[人民ASC]
1
2
0
0
[PEOPLE DESC]
0
0
2
1
我希望PEOPLE DESC能够展示:
2
1
0
0
任何人都可以帮忙吗?
— UPDATE —–
经过一个多小时的搜索,我觉得我越来越近了:
首先,我必须编辑我的观点:
从
<%= mycontact.people.count %>
至
<%= mycontact.people_count %>
这将所有零都改为零.
现在我的排序输出是:
[PEOPLE DESC]
零
零
2
1
然后我做了一些挖掘,并在github上找到了这个问题的link,这解释了你必须最后添加NULLS.
所以我将以下代码添加到peoples_controller.rb:
@q.result.except(:order).order("#{@q.sorts.first.attr_name} #{@q.sorts.first.dir} NULLS LAST")
我一开始很兴奋,因为它工作但是在重新启动我的服务器之后我收到以下错误:
未定义的方法`attr_name’代表nil:NilClass