在我的控制器中,我有:
@bills = Bill.where(:param1 => x, :param2 => y).sort_by {|u| u.created_at}.reverse.paginate(:page => params[:page])
当我尝试渲染时,我得到了上述错误。摆脱where,sort和reverse子句摆脱了问题,但我需要它们。我怎么能同时拥有这两个?
答案 0 :(得分:0)
当您调用sort_by {|u| u.created_at}
时,您将数据从db获取到数组并在ruby端对其进行排序。
如果你想要paginate ruby数组数据试试这个:
@bills = Kaminari.paginate_array(Bill.where(:param1 => x, :param2 => y)).page(params[:page]).per(PER_PAGE_RECORDS)`
但更好的方法是在数据库查询中对您的数据进行排序
@bills = Bill.where(:param1 => x, :param2 => y).order("created_at DESC").paginate(:page => params[:page])
答案 1 :(得分:0)
使用AR链。 sort_by会产生一个数组。
@bills = Bill.where(:param1 => x, :param2 => y).order('created_at DESC').paginate(:page => params[:page])
答案 2 :(得分:0)