fixed bug in has_one when restore