2016-12-16 52 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