Ruby on rails Rails嵌套属性错误未传播

Ruby on rails Rails嵌套属性错误未传播,ruby-on-rails,ruby,nested-attributes,Ruby On Rails,Ruby,Nested Attributes,我有以下型号: class-CourseSection:content,:source\u type=>'task' ... 结束 类任务{“title”=>“Task”,“id”=>“6”,“_destroy”=>“1”}}允许:true> 基于这些参数,它尝试销毁任务,这将触发dependent::destroy并尝试销毁ContentRef。在这里,会触发before_destroy并执行检查(在本例中)并输入if,插入错误并中止。最后,这导致任务没有像我希望的那样被销毁,但是控制器中的

我有以下型号:

class-CourseSection:self\u ref,:source=>:content,:source\u type=>'task'
...
结束
类任务<应用程序记录
有很多:引用内容引用,如::content,dependent::destroy,类名:“ContentRef”
...
结束
我通过CourseSectionsController中的嵌套属性操作任务,如下所示:

@course\u section.update\u attributes\u params
其中更新属性参数为

<ActionController::Parameters {"tasks_attributes"=>{"0"=>{"title"=>"Task", "id"=>"6", "_destroy"=>"1"}}} permitted: true>
{“0”=>{“title”=>“Task”,“id”=>“6”,“_destroy”=>“1”}}允许:true>
基于这些参数,它尝试销毁任务,这将触发dependent::destroy并尝试销毁ContentRef。在这里,会触发before_destroy并执行检查(在本例中)并输入if,插入错误并中止。最后,这导致任务没有像我希望的那样被销毁,但是控制器中的
@course\u部分没有任何错误,因此它不知道出了什么问题。另外,
.update
返回true,我也不理解。难道它不应该知道有一个中止和返回错误吗


此时,在这种情况下,控制器的行为就好像没有任何问题,并且更新成功。

尝试添加
错误。添加(:base,“base error”)
不起作用。我相信:base意味着错误与整个模型相关,而不仅仅是它的单个属性。我不认为这与传播有任何关系。你确定
任务完成
不是空的吗?是的,我完全确定。我使用了byebug,它清楚地输入了if并添加了错误。