Ruby on rails 将值指定给模型是否会保存模型?

Ruby on rails 将值指定给模型是否会保存模型?,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我看到的控制器的代码库中 def destroy @workflow_automation.status = WorkflowAutomation::STATUS[:deleted] render_workflows end 就这样,没有拯救。它在大多数情况下都能工作,但我正在尝试调试一个没有发生更改的问题。这可能是一个原因吗?为什么这是间歇性的?它不会保存,如果您使用的是enum,则需要使用bang方法,如: @workflow\u automation.deleted 然后,如果

在我看到的控制器的代码库中

def destroy
  @workflow_automation.status = WorkflowAutomation::STATUS[:deleted]
  render_workflows
end

就这样,没有拯救。它在大多数情况下都能工作,但我正在尝试调试一个没有发生更改的问题。这可能是一个原因吗?为什么这是间歇性的?

它不会保存,如果您使用的是enum,则需要使用bang方法,如:

@workflow\u automation.deleted


然后,如果将值分配给
status
时存在隐式
save
,它将自动保存到模型

,这完全取决于
status=
方法的实现。它可以是一个简单的赋值,也可以是一个更新和保存多个对象的极其复杂的方法。只有能够访问该方法源代码的人才能回答您的问题。如果
save
调用丢失,“大部分时间”都不起作用,那么显然,还有其他事情在发生。可能
status=
被覆盖,可能是由于gem。还可能有一个保存记录的回调。您可以钩住模型的save,查看从何处调用它。