ruby - 使用 ruby on rails 测试 kaminari 参数是否存在
问题描述
我是 Ruby 新手,我的任务是为 get 方法添加分页,但我尝试测试参数 (page) 和 (per_page) 是否存在,如果它们不存在,它应该返回数据库中的所有数据,因为默认情况下 kaminari 只返回 25 页。
这是我的功能
def index
if page.present? && per_page.present?
@domains = Domain.accessible_by(access_token).page(page).per(per_page)
else
@domain = Domain.accessible_by(access_token).all
end
render json: @domain
end
在它返回200 OK
响应但为空
解决方案
控制器方法通过params
对象接收请求参数。变量page
和per_page
未定义,将引发异常undefined local variable, etc.
。
还有几件事:
- 我猜这个
@domain
变量是印刷错误,@domains
应该改用。 - 由于
if
fork 的两个表达式都返回分配给@domains
变量的值,因此可以简化。
综上所述,这里是改进的控制器方法:
def index
@domains = if params[:page].present? && params[:per_page].present?
Domain.accessible_by(access_token)
.page(params[:page])
.per(params[:per_page])
else
Domain.accessible_by(access_token).all
end
render json: @domains
end
推荐阅读
- python - 如何在 django 上创建一些添加字段?
- c# - 如何在 C# TableAdapter 向导中使用子查询计算匹配记录
- javascript - 在 JavaScript 中阻止每 X 秒调用一次函数的最简单方法是什么?
- python - 如何修复“GurobiError Q 矩阵不是半正定 (PSD)”
- java - 返回导致 NullPointerException 的 ArrayList 的方法
- bash - BASH - 在 for 循环问题中查找文件
- c# - C# 中是否存在表示从字符串转换时出错的浮点数?
- django - Django Permission denied: '/media/images' 上传图片
- reactjs - 如何减少按钮的数量?
- android - 如何开始为 Google Glass 开发应用程序?