JSONAPI资源,需要过滤最后一条记录

时间:2016-05-09 19:28:29

标签: sql ruby-on-rails postgresql json-api jsonapi-resources

所以我正在为JSONAPI资源创建一个过滤器,在那里我将获取在过去10分钟内创建的任何内容,并且只返回一个结果。

问题,当我在返回的记录上调用.last(1)时出现错误:

"exception": "undefined method `order' for #<Array:0x007fde4770bcf0>"

我的非破坏性查询是这样的:

records.where(user_id: user_id, updated_at: ten_minutes_ago..current_time)

有任何帮助吗?我想在Rails方面这样做,而不是在我们的前端处理一些结果(或没有结果)。谢谢!

1 个答案:

答案 0 :(得分:0)

好的,所以这笔交易就是这样。

为了只获取1条记录,您可能需要覆盖/定义自己的分页器,如下所示:

paginator :none

我会将它放在您的属性之后和过滤器之前。凉?凉。接下来,您可以执行基本的Rails查询:

records.where(user_id: user_id, updated_at: ten_minutes_ago..current_time)
.order(id: :desc)
.limit(1)

您需要设置您的分页符,否则默认值或您定义的任何内容都将覆盖您的限制查询。甜。容易。