rails中weill_paginate的paginate方法中不能使用额外参数的解决办法
我们知道高版本中的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方法中不能使用额外参数的解决办法相关推荐
- js中match、replace方法中使用正则表达式
为什么80%的码农都做不了架构师?>>> js中match.replace方法中使用正则表达式 (2012-06-29 14:23:37) 转载▼ 标签: 字符串 飞雪 正则表 ...
- 解决vue中无法取得methods方法中的return值
解决vue中无法取得methods方法中的return值 参考文章: (1)解决vue中无法取得methods方法中的return值 (2)https://www.cnblogs.com/betty- ...
- 在word中利用Endnote导入文献时提示“无法编辑range”的解决办法-基本上通过以下方法都可以解决
在word中利用Endnote导入文献时提示"无法编辑range"的解决办法 注意:在处理这个问题之前,请复制word以备份我们要处理的word文件,否则后期如果我们调整了word ...
- IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法
在 IOS 开发当中经常碰到 whose view is not in the window hierarchy 的错误,该错误简单的说,是由于 "ViewController" ...
- 关于Win10 64位Cadence16.6中OrCAD Capture CIS导网表出现ERROR无效指针的解决办法
** 关于Win10 64位Cadence16.6中OrCAD Capture CIS导网表出现ERROR无效指针的解决办法 ***背景:在第一次使用Cadence原理图导网表,结果出现报错,PCB ...
- Access中操作必须使用一个可更新的查询错误的解决办法
错误信息: Microsoft OLE DB Provider for ODBC Drivers error ''80004005'' [Microsoft][ODBC Microsoft Acces ...
- Pycharm中无法导入各种Python模块,pip不能更新的解决办法
一.Pycharm中无法导入各种Python模块,pip不能更新的解决办法 1.先用python -m pip uninstall pip 将之前版本的pip卸载 2.在官网上下载pip压缩包,记得下 ...
- eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法
eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法 当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, Ser ...
- GitLabCICD实战----在.gitlab-ci.yml文件的步骤中使用git clone 另一个代码仓报错的解决办法
更多信息请关注 个人网站 一.背景 在有些时候,比如在一个项目中,产品的代码是java代码仓,自动化测试脚本是python语言,单独存放的代码仓,在使用GitlabCICD构建流水线的时候有这样一种场 ...
最新文章
- Cordova探险系列(一个)
- pytorch安装实录(win10+cuda8+pycharm+anaconda)
- 提高C程序效率的10种方法
- IBASE save - my toolset investigation
- Spring配置文件中bean标签的scope属性
- c语言加花指令,花指令的应用
- 栈溢出笔记1.3 准备Shellcode
- java构建工具 gradle_Java构建工具
- (一)netty介绍
- yum 更新内核报错 “Error: initscripts conflicts with centos-release-7-0.1406.el7.centos.2.3.x86_64的解决办法
- antd权限管理_Ant Design Pro开发后台管理系统(权限)-阿里云开发者社区
- 网站开发中很实用的 HTML5 jQuery 插件
- 3.1 语音的产生与感知
- 47. Magneto Transaction Email(1)
- .NET C# Socket产品性能测试、性能对比报告(包含SuperSocket、HPSocket.Net、TouchSocket)
- 动环监控系统服务器维护,机房动环设备维护与检测的13个具体内容
- 什么高大填空四个字动人_什么发亮填空四字词语
- oracle omf管理,使用OMF管理表空间
- 对标40亿美金Webflow,「Towify」想用无代码方式搭建小程序
- PowerDesigner 生成数据字典
热门文章
- TypeScript类型检查机制
- c#基础知识梳理(四)
- 关于Mysql java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)的问题...
- 数据结构(复习)--------关于平衡二叉树(转载)
- Java学习笔记(4)——枚举类型
- cf1132E. Knapsack(搜索)
- 【NOIP】关押罪犯
- 设计模式六大原则(3)——依赖倒置原则
- appium 环境搭建 java
- C# 微支付退款申请接口 V3.3.6