2016-04-17 15 views
1

Gibt es eine Möglichkeit zu überprüfen, ob eine Instanz eines Modells bereits heute erstellt wurde?Prüfen, ob die Instanz des Modells heute erstellt wurde?

Ich möchte es so nur eine Instanz des Modells sollte jeden Tag erstellt werden, wenn eine neue erstellt wird, wird jede Instanz, die bereits an diesem Tag erstellt wurde gelöscht.

Antwort

1

Abfrage direkt in die db nur Aufzeichnungen heute abzurufen:

Model.where(created_at: Time.now.beginning_of_day..Time.now.end_of_day) 

Sie es auch bei Ruby Ende verarbeiten kann (Wenn Sie wirklich wollen, aber nicht empfohlen):

Model.all.select{|m| m.created_at.today?} 
1

Sie müssen zuerst überprüfen, ob es Instanzen gibt, die heute erstellt wurden, und wenn ja, zerstören Sie sie alle. Danach können Sie Ihre neue Instanz erstellen.

def destroy_todays 
    Model.where(created_at: Time.zone.now.beginning_of_day..Time.zone.now.end_of_day).destroy_all 
end 

def create_todays(attrs) 
    destroy_todays 
    Model.create(attrs) 
end 

Also, jedes Mal, wenn heutige Instanz erstellen möchten, können Sie garantieren Ihnen zunächst alle anderen Instanzen zu zerstören, die heute erstellt wurden.

Verwandte Themen