lib/source_route/generate_result.rb
def assign_tp_self_caches(tp_ins)
      unless tp_self_caches.find { |tp_cache| tp_cache.object_id.equal? tp_ins.self.object_id }
        tp_self_caches.push tp_ins.self
      end
    end
def assign_tp_self_caches(tp_ins)
      unless tp_self_caches.find { |tp_cache| tp_cache.object_id.equal? tp_ins.self.object_id }
        tp_self_caches.push tp_ins.self
      end
    end
def assign_tp_self_caches ( tp_ins ) unless tp_self_caches . find { | tp_cache | tp_cache . object_id . equal? tp_ins . self . object_id } tp_self_caches . push tp_ins . self end end
include? will evaluate @tp.self, if @tp.self is AR::Relation, it could cause problems
 So that's why I use object_id as replace
include? will evaluate