a) True, I forgot about it.
b) When they could be different?
c, d) Yes, metaprogramming usually isn't that simple. I'm OK with this method specifically, as I don't think there's too much magic involved. But if there's only 2 possible cases, I agree in changing it. But I wouldn't do it inline, to keep it DRY.
e) I feel it's more user friendly to tell the user what's wrong with their request. If I try to delete a request and get an error back, it would be great if it told me that the problem is that I probably sent an invalid model name, and not some generic error. Also, it's easier to reuse the method for both create and delete :P