0

Ich habe ein Modell mit 2 spezifischen Feldern mit den Namen Start und Ende. Das sind Daten, die ich gegen das aktuelle Datum überprüfen möchten (Time.now), um nur Datensätze zu erhalten, wo aktuelle Zeit zwischen Start und Ende gespeicherten WerteFinden Sie Modell Datensätze gegen Time.now

Ich habe versucht, ein paar Dinge wie

besteht
Model.all.find_by(start: <Time.now , end: >Time.now) 

Aber ich bekomme Syntaxfehler die ganze Zeit. Manchmal ist der Feldname des zweiten Datums (Ende) sogar mit dem Schlüsselwort 'end' in meinem Controller verwechselt.

+0

Zuerst müssen Sie den Namen Ihrer Endspalte ändern, um zu beenden oder end_dt oder etwas anderes als Ende. Wahnsinn wird deine Realität sein, wenn du weiterhin das Ende benutzt. – Sixty4Bit

Antwort

2

Sie können so etwas wie dies versuchen:

Model.where('start < ? and end > ?', Time.now, Time.now) 

By the way, all in dieser Situation redundant ist.

+0

mit find_by gibt tatsächlich einen lustigen Fehler: 'undefined Methode jeder ..' in meiner Ansichtsdatei. Aber Model.where ('start < ? and end >?', Time.now, Time.now) scheint perfekt zu funktionieren! Danke – Maxence

+1

@Maxence: 'find_by' gibt ein einzelnes Objekt zurück, während' where' eine Sammlung zurückgibt. – potashin

Verwandte Themen