小编Gar*_*ger的帖子

Ransack计数排序顺序错误

我正在使用Ransack Gem并通过计数器缓存进行计数排序.我的属性是一个整数.

我这样称呼它:

<%= sort_link(@q, :people_count, "PEOPLE") %>
Run Code Online (Sandbox Code Playgroud)

我得到的排序输出是:

[人民ASC]

1
2
0
0

[PEOPLE DESC]

0
0
2
1

我希望PEOPLE DESC能够展示:

2
1
0
0

任何人都可以帮忙吗?

--- 更新 -----

经过一个多小时的搜索,我觉得我越来越近了:

首先,我必须编辑我的观点:

<%= mycontact.people.count %>
Run Code Online (Sandbox Code Playgroud)

<%= mycontact.people_count %>
Run Code Online (Sandbox Code Playgroud)

这会将全零变为零.

现在我的排序输出是:

[PEOPLE DESC]



2
1

然后我做了一些挖掘,并在github上找到了这个问题的链接,这解释了你必须添加NULLS LAST.

所以我将以下代码添加到peoples_controller.rb:

@q.result.except(:order).order("#{@q.sorts.first.attr_name} #{@q.sorts.first.dir} NULLS LAST")
Run Code Online (Sandbox Code Playgroud)

我很兴奋,因为它工作,但然后重新启动我的服务器后收到以下错误:

未定义的方法`attr_name'代表nil:NilClass

sorting ruby-on-rails ransack ruby-on-rails-4

8
推荐指数
1
解决办法
1246
查看次数

标签 统计

ransack ×1

ruby-on-rails ×1

ruby-on-rails-4 ×1

sorting ×1