我们知道高版本中的rails中的分页功能已经放在will_paginate这个gem中,我们在控制器方法中往往需要调用其paginate方法来实现分页数据集控制,举个例子:正常的情况我们想要每页显示10条记录可以这么写:

Item.paginate(page:params[:page],per_page:10)

但是我们又想要降序排列记录呢?书上给出的例子如下:

Item.paginate(page:params[:page],per_page:10,order:'created_at DESC')

可惜该方法在新的rails中已不能使用!通过查看will_paginate的源代码可以看到,原因是如果paginate的调用包含其他参数的话,会调用Active_Record::Relation中的实例方法apply_finder_options:

module Paginationdef paginate(options)options  = options.duppagenum  = options.fetch(:page) { raise ArgumentError, ":page parameter required" }per_page = options.delete(:per_page) || self.per_pagetotal    = options.delete(:total_entries)count_options = options.delete(:count)options.delete(:page)rel = limit(per_page.to_i).page(pagenum)puts "#{'*'*100}:#{rel}\#"rel = rel.apply_finder_options(options) if options.any?rel.wp_count_options = count_options    if count_optionsrel.total_entries = total.to_i          unless total.blank?relend
end

可是该方法在新rails中不存在了。解决办法是在控制器调用paginate前排序即可:

@orders = Order.order('created_at DESC').paginate(page:params[:page],per_page:10)

rails中weill_paginate的paginate方法中不能使用额外参数的解决办法相关推荐

  1. js中match、replace方法中使用正则表达式

    为什么80%的码农都做不了架构师?>>>    js中match.replace方法中使用正则表达式 (2012-06-29 14:23:37) 转载▼ 标签: 字符串 飞雪 正则表 ...

  2. 解决vue中无法取得methods方法中的return值

    解决vue中无法取得methods方法中的return值 参考文章: (1)解决vue中无法取得methods方法中的return值 (2)https://www.cnblogs.com/betty- ...

  3. 在word中利用Endnote导入文献时提示“无法编辑range”的解决办法-基本上通过以下方法都可以解决

    在word中利用Endnote导入文献时提示"无法编辑range"的解决办法 注意:在处理这个问题之前,请复制word以备份我们要处理的word文件,否则后期如果我们调整了word ...

  4. IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法

    在 IOS 开发当中经常碰到 whose view is not in the window hierarchy 的错误,该错误简单的说,是由于 "ViewController" ...

  5. 关于Win10 64位Cadence16.6中OrCAD Capture CIS导网表出现ERROR无效指针的解决办法

    ** 关于Win10 64位Cadence16.6中OrCAD Capture CIS导网表出现ERROR无效指针的解决办法 ***背景:在第一次使用Cadence原理图导网表,结果出现报错,PCB ...

  6. Access中操作必须使用一个可更新的查询错误的解决办法

    错误信息: Microsoft OLE DB Provider for ODBC Drivers error ''80004005'' [Microsoft][ODBC Microsoft Acces ...

  7. Pycharm中无法导入各种Python模块,pip不能更新的解决办法

    一.Pycharm中无法导入各种Python模块,pip不能更新的解决办法 1.先用python -m pip uninstall pip 将之前版本的pip卸载 2.在官网上下载pip压缩包,记得下 ...

  8. eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法

    eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法  当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, Ser ...

  9. GitLabCICD实战----在.gitlab-ci.yml文件的步骤中使用git clone 另一个代码仓报错的解决办法

    更多信息请关注 个人网站 一.背景 在有些时候,比如在一个项目中,产品的代码是java代码仓,自动化测试脚本是python语言,单独存放的代码仓,在使用GitlabCICD构建流水线的时候有这样一种场 ...

最新文章

  1. Cordova探险系列(一个)
  2. pytorch安装实录(win10+cuda8+pycharm+anaconda)
  3. 提高C程序效率的10种方法
  4. IBASE save - my toolset investigation
  5. Spring配置文件中bean标签的scope属性
  6. c语言加花指令,花指令的应用
  7. 栈溢出笔记1.3 准备Shellcode
  8. java构建工具 gradle_Java构建工具
  9. (一)netty介绍
  10. yum 更新内核报错 “Error: initscripts conflicts with centos-release-7-0.1406.el7.centos.2.3.x86_64的解决办法
  11. antd权限管理_Ant Design Pro开发后台管理系统(权限)-阿里云开发者社区
  12. 网站开发中很实用的 HTML5 jQuery 插件
  13. 3.1 语音的产生与感知
  14. 47. Magneto Transaction Email(1)
  15. .NET C# Socket产品性能测试、性能对比报告(包含SuperSocket、HPSocket.Net、TouchSocket)
  16. 动环监控系统服务器维护,机房动环设备维护与检测的13个具体内容
  17. 什么高大填空四个字动人_什么发亮填空四字词语
  18. oracle omf管理,使用OMF管理表空间
  19. 对标40亿美金Webflow,「Towify」想用无代码方式搭建小程序
  20. PowerDesigner 生成数据字典

热门文章

  1. TypeScript类型检查机制
  2. c#基础知识梳理(四)
  3. 关于Mysql java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)的问题...
  4. 数据结构(复习)--------关于平衡二叉树(转载)
  5. Java学习笔记(4)——枚举类型
  6. cf1132E. Knapsack(搜索)
  7. 【NOIP】关押罪犯
  8. 设计模式六大原则(3)——依赖倒置原则
  9. appium 环境搭建 java
  10. C# 微支付退款申请接口 V3.3.6