1
內的AR對象類定義(我不知道這是相關的,但我包括在案件的信息是),我有收集其他AR對象的數組和選擇性的方法刪除其中的一些內循環。本質:爲什麼ActiveRecord在從數組中刪除與對象相對應的行?
class SomeApplicationModel < ActiveRecord::Base
def user_method
c_list = [array of c objects]
p_list.each{|p|
... a bunch of logic to determine if c should be deleted
c_list.delete(c)
}
end
end
當它擊中c_list.delete(C),我從包括C和P的關係日誌得到一個錯誤:
ActiveRecord::StatementInvalid - Mysql2::Error: Cannot delete or update a parent row: a foreign key constraint fails (`stagingdb/c_p`, CONSTRAINT `c_p_ibfk_1` FOREIGN KEY (`cp_id`) REFERENCES `cs` (`id`)): DELETE FROM `cs` WHERE `cs`.`id` = 147:
爲什麼試圖刪除記錄在這裏與c相對應的db中(堆棧跟蹤將.delete行作爲拋出錯誤的地方)?
我不得不鑽研它更多,但它絕對不是一個明確的關係。 _list是某種隱式關係後綴(上面的實際變量名稱是模糊的,但它們確實以_list結尾)? – fields
你可以分享'[數組對象數組]中使用的實際代碼嗎? – cschroed
不是直接。我可以說的是,它的方法的基於返回C.find(list_of_ideas)或C.all,其中C是對應於c中的ActiveRecord類,然後該方法的結果是任一的結果SomeApplicationModel輸出使用.clone()複製到新數組中。克隆的數組就是從中刪除的內容。 – fields