我是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
响应,但为空
答案 0 :(得分:1)
Controller方法通过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