Bullet add force to ragdoll help

I have the enemy set up so that if its health is set to 0, it will instantiate a ragdoll. I want the ragdoll to be effected by the bullets force. I have the bullet set up to add force to rigidbodies but obviously the bullet is destroying the enemys gameobject and itself when it kills the enemy. How would I go about getting this to work?

Here is the enemy script :

var target : Transform;
private var navComponent : NavMeshAgent;
var life : float = 100;
var ragdoll : GameObject;

 
function Damage(damage:float)
{
    life-=damage;
    
    if (life <= 0)
        PlayerDead ();
}

function Update ()
{
   navComponent = this.transform.GetComponent(NavMeshAgent);
   navComponent.SetDestination(target.position);
}

function PlayerDead ()
{
   Destroy(gameObject);
   gameObject.SetActiveRecursively(false);
   if (ragdoll) 
      {
         Instantiate(ragdoll, transform.position, transform.rotation);
      }
}

and here is the bullet script :

var speed : float = 500;
var randomAngle : float = 0;
var lifeTime : float = 3;
var bulletGravity : float = 9.8;
var floatInFrontOfWall : float = 0.001;
var decalHitWall : GameObject;

@HideInInspector
var moveDirection : Vector3;
@HideInInspector
var shortestSoFar : float;

@HideInInspector
var instantiatePoint : Vector3;
@HideInInspector
var instantiateRotation : Quaternion;
@HideInInspector
var foundHit : boolean = false;
@HideInInspector
var parentToAdd : Transform;
var force = 500;
var damage = 50;


function Awake ()
{
   transform.Rotate((Random.value * 2 * randomAngle) - randomAngle, 0, Random.value * 360);
   moveDirection = transform.forward * speed;
   
   shortestSoFar = Mathf.Infinity;
   
   foundHit = false;
}



function Update ()
{
   transform.rotation = Quaternion.LookRotation (moveDirection);
   var hits : RaycastHit [];
   hits = Physics.RaycastAll(transform.position, transform.forward, speed * Time.deltaTime);
   for (var hit in hits)
    {
       if (hit.transform)
       {
           if (Vector3.Distance(transform.position, hit.point) < shortestSoFar) {
           instantiatePoint = hit.point + (hit.normal * (floatInFrontOfWall + Random.Range(0, 0.01)));
           instantiateRotation = Quaternion.LookRotation(hit.normal);
           parentToAdd = hit.transform;
           shortestSoFar = Vector3.Distance(transform.position, hit.point);
           foundHit = (true); }
       }
      if (hit.rigidbody){ // apply impact if the target is a rigidbody:
      hit.rigidbody.AddForce(transform.forward * force);
      }
      
      if (hit.transform.tag =="Enemy")
        {
          hit.transform.SendMessage("Damage", damage, SendMessageOptions.DontRequireReceiver);
          
        }
    
    // apply damage (ApplyDamage is an enemy function):
    }
    
    if (foundHit)
    {
       var spawnedBulletHole : GameObject = Instantiate(decalHitWall, instantiatePoint, instantiateRotation);
       if (parentToAdd)
           spawnedBulletHole.transform.parent = parentToAdd;
       Destroy(gameObject);
    }
    
    transform.position += moveDirection * Time.deltaTime;
    moveDirection.y -= bulletGravity * Time.deltaTime;
    
    lifeTime -= Time.deltaTime;
    if (lifeTime < 0)
        Destroy(gameObject);
}

Fixed it:

if (hit.transform.tag =="Enemy")
        {
          hit.transform.SendMessage("Damage", damage, SendMessageOptions.DontRequireReceiver);
          hit.rigidbody.AddForce(transform.forward * force);
          foundHit = false;
        }