2016-05-09 14 views
0

Also ich bin auf der Suche nach einem Filter für eine JSONAPI-Ressource, wo ich alles, was innerhalb der letzten 10 Minuten erstellt und nur ein Ergebnis zurückgeben, wenn etwas da ist.JSONAPI Resources, brauche einen Filter für den letzten Datensatz

Problem, wenn ich .last (1) auf die zurückgegebenen Datensätze aufrufen bekomme ich einen Fehler:

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

Mein non-breaking Abfrage ist dies:

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

Jede Hilfe? Ich würde das gerne auf der Rails-Seite machen, anstatt mich mit einem Mangel an Ergebnissen (oder keinen Ergebnissen) an unserem Front-End zu beschäftigen. Vielen Dank!

Antwort

0

Okay, so ist der Deal das.

Um nur 1 Datensatz greifen müssen Sie wahrscheinlich Ihre eigene paginator überschreiben/definieren, etwa so:

paginator :none 

ich es nach den Attributen und vor Ihren Filter setzen würde. Cool? Cool. Als nächstes können Sie nur tun, um Ihre Abfrage Grund Rails:

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

Sie benötigen paginator oder auch die Standardwerte zu setzen oder was auch immer Sie definiert haben, wird Ihr Limit Abfrage überschreiben. Süss. Einfach.

Verwandte Themen