当任何记录具有特定属性时,更改父状态

时间:2019-05-02 16:23:53

标签: ruby-on-rails if-statement activerecord

我要更改status记录的Job,在其任何子级(status)的Jobdetails 之后是设置为true。

基本上,代码应类似于:

if every Job.jobdetail.status == true
  Job.status = true
end

问题是,我不知道如何检查任何东西。当然,我知道rails中的where语句,但是我不确定如何在没有每次迭代的情况下表达“ any”,我猜这种情况下不起作用。每次更新Jobdetails之后,我都想检查其他Jobdetails是否也“完成”。想象一下功能像进度条。如果每个子作业都已完成,则将主作业的状态更改为“完成”。我该如何实现?

感谢。

1 个答案:

答案 0 :(得分:1)

如果仅在所有my_job完成后才希望jobdetails被标记为完成,那么您只需要检查至少一个jobdetail是否具有{ {1}}:

status = false