有一段代码是删除 Testtask 和 Subtask 这两个对象的关系是:
Testtask has_many subtasks
我是这样写的:
ActiveRecord::Base.transaction do
Testtask.find(params[:id]).subtasks.each do |st|
st.destroy!
end
Testtask.find(params[:id]).destroy! # ← here
end
问题来了:执行到
Testtask.find(params[:id]).destroy!) # ← here
的时候报错,提示我按照这个 id 找不到这个 Testask ... 可是前面的 find 是成功了的...
无奈,现在的处理方法是这样的:
ActiveRecord::Base.transaction do
this_tt = Testtask.find(params[:id])
this_tt.subtasks.each do |st|
st.destroy!
end
this_tt.destroy!
end
这样就可以了,谁能告诉我这个是什么情况...好奇怪