Question: has ate or has eaten?
Answer: “He ate” is simple past tense, and would be correct if you want to convey the fact that the subject is done eating. (“He ate spaghetti for dinner.”) “He has eaten” is the present perfect and indicates action in the past, but earlier in the past: “He has eaten spaghetti every day this week.”