Audio not playing on collision?

I’m trying to play an audio source when a gameobject gets destroyed on collision. I have the Audio Source enabled, but Unity is giving me this error message:
“Can not play a disabled audio source
UnityEngine.AudioSource:Play()”
However, if I leave Play on Awake checked, it gives me this error message but plays the audio source once on startup, even though this isn’t at all what I want. Here’s my script.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RingPickup : MonoBehaviour {

    public GameManager gm;
    public AudioSource RingSound;
    public bool ringDark;

	// Use this for initialization
	void Start () {
        RingSound = GetComponent<AudioSource>();
        gm = FindObjectOfType<GameManager>();
	}
	
	void OnTriggerEnter(Collider col)
    {
        if(col.tag == "Player")
        {
            Debug.Log("Play ring sound");
            RingSound.Play();
            if (ringDark)
                gm.darkRings++;
            if(!ringDark)
                gm.rings++;
            
            Destroy(gameObject);
        }
    }
}

I believe you are destroying the object that has the audiosource and is supposed to play the sound.

You could move the audiosource to a child GameObject of the original object, upon collision deparent it and destroy it with a delay.

Ringsound.transform.SetParent(null);
RingSound.Play();
Destroy(RingSound.gameObject, 2f);
Destroy(gameObject);

Or you could leave things as they are, disable all renderers, colliders etc. relevant things on your object to make it invisible upon collision and actually destroy it with a delay

  foreach (var rend in GetComponentsInChildren<Renderer>()) { 
            rend.enabled = false;
    }

  Destroy(gameObject, 2f);

The best solution I have found is to attach the audio to the player GO instead of the GO that is being destroyed. A destroyed GO can’t play an audio source because it is destroyed.