Isn't a belongs_to usually up the tree, and we shouldn't be traversing the tree for those records?  IE right now couldn't a simple misconfiguration make this an endless loop?