Rails-如果使用“ where”或范围,则不保存子对象

时间:2019-04-16 11:49:06

标签: ruby-on-rails ruby activerecord

我正在尝试更改子对象,并且如果我使用范围或在哪里进行过滤,则当我在父对象上调用.save时,更改将不会保存。

object = Object.find(@id)
object.children.where(active: true).each do |c|
   c.active = false
end 
object.save

像这样,该对象不会保存,但是如果我这样做:

object = Object.find(@id)
object.children.each do |c|
   c.active = false if c.active == true
end 
object.save

它正常工作,我在做什么错了?

Ruby v2.4.5p335

Rails v5.2.3

@编辑

工作: enter image description here 不起作用: enter image description here

0 个答案:

没有答案