2016-09-22 2 views
0

ich eine Abfrage haben, etwa so:Rails, um Abfrage durch alle 6 Stunden

query = Post.where(is_public: true).order(score: :desc) 

Ich möchte die Beiträge erhalten, die die höchste Punktzahl für jede 6 Stunden Fenster haben für, wenn sie created_at waren. Wie kann ich das erreichen?

Ich weiß, dass ich dies für die Bestellung von jedem Tag erreichen können, also query = Post.where(is_public: true).order('DATE(created_at) DESC').order(score: :desc)

(Ich bin mit Postgres)

+0

Was ist das 6 Stunden Fenster bedeutet. Hast du 4 Slots an einem Tag? –

+0

@CharanKumarBorra 4 Steckplätze? – irosenb

Antwort

0

Sie könnten den folgenden Code versuchen,

posts = Post.where('created_at > ?', 6.hours.ago).order(score: :desc) 
+0

Aber dann möchte ich auch die nächsten Posts sehen können. Sollte alle 6 Stunden gruppiert werden – irosenb

Verwandte Themen