2016-05-09 2 views
0

, поэтому я ищу создание фильтра для ресурса JSONAPI, где я заберу что-нибудь, созданное за последние 10 минут, и возвращу только один результат, если что-то там.JSONAPI Resources, нужен фильтр для последней записи

Проблема, когда я называю .last (1) по возвращенным записей я получаю сообщение об ошибке:

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

Мой неразрывный запрос заключается в следующем:

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

Любая помощь? Я бы хотел сделать это на стороне Rails, вместо того, чтобы иметь дело с калекой результатов (или без результатов) на нашем интерфейсе. Благодаря!

ответ

0

Хорошо, так что дело в этом.

Для того, чтобы захватить только 1 запись, возможно, придется переписать/определить свой собственный Paginator, например, так:

paginator :none 

Я положил его после того, как ваши атрибуты и перед вашими фильтрами. Круто? Круто. Далее, вы можете просто сделать ваши основные Rails запрашивая:

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

Вы должны установить Paginator или иначе по умолчанию или то, что вы определили перезапишете предел запроса. Милая. Легко.

Смежные вопросы