2016-12-16 76 views
0

如果模型更改,我試圖從循環中退出。具有status屬性如果模型更改停止循環

@model.status = 'started' 

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

的問題是,一旦是started變化模型沒有在循環中體現出來,任何想法?

回答

0

您需要查詢循環內的狀態,以便獲取更新的狀態。

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

'self.reload'會比'status = Model.find(:id).status'更好。它從數據庫刷新模型。你甚至可以寫'返回,如果self.reload.status =='停止' – nburkley