ruby-on-rails – Ransack计数排序顺序错误
发布时间:2020-12-17 04:36:42 所属栏目:百科 来源:网络整理
导读:我正在使用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 任何人都可以帮
我正在使用Ransack Gem并通过计数器缓存进行计数排序.我的属性是一个整数.
我这样称呼它: <%= sort_link(@q,:people_count,"PEOPLE") %> 我得到的排序输出是: [人民ASC] 1 [PEOPLE DESC] 0 我希望PEOPLE DESC能够展示: 2 任何人都可以帮忙吗? — UPDATE —– 经过一个多小时的搜索,我觉得我越来越近了: 首先,我必须编辑我的观点: 从 <%= mycontact.people.count %> 至 <%= mycontact.people_count %> 这将所有零都改为零. 现在我的排序输出是: [PEOPLE DESC] 零 然后我做了一些挖掘,并在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 解决方法
我不熟悉Ransack宝石;但是,我现在最终可能会使用它,因为我已经看到了它能做什么.
试试这个: <%= sort_link(@q,"PEOPLE",default_order: :desc) if :people_count > 0 %> 这些行中的某些内容应该为[PEOPLE DESC]提供以下输出: 2 1 然后你可以做这样的事情: <%= sort_link(@q,default_order: :desc) where :people_count = 0 %> 以0为计数显示结果. 这个逻辑有意义吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |