bug -- fix bug of  has_one