2016-12-16 2 views
0

Ich versuche, eine Schleife zu verlassen, wenn sich das Modell ändert.Eine Schleife anhalten, wenn sich das Modell ändert

mit dem status Attribut:

@model.status = 'started' 

(0..100).each do |i| 
    return if status == 'stopped' 
    sleep(10) 
    # my taks... 
end 

das Problem ist, einmal ist started Änderungen im Modell nicht in der Schleife reflektiert werden, irgendwelche Ideen?

Antwort

0

Sie müssten den Status innerhalb der Schleife abfragen, um einen aktualisierten Status zu erhalten.

(0..100).each do |i| 
    status = Model.find(:id).status 
    return if status == 'stopped' 
    sleep(10) 
    # my taks... 
end 
+1

'self.reload' wäre besser als' status = Model.find (: id) .status'. Es aktualisiert das Modell aus der Datenbank. Man könnte sogar schreiben, 'return wenn self.reload.status == 'stopped' – nburkley

Verwandte Themen