I realized what I did wrong - I sort of over-thought it a bit. I didn't know that when you permit strong parameters, you have to also permit the :id
parameter on an associated record you're trying to update. I sort of assumed Rails magic would take care of that.
So it works if you change the permit_params
call to say this instead:
permit_params page_attributes_attributes: [:id, :key, :value, :_destroy => true]
In fact, that's what the Strong Parameters section on the Active Admin Github wiki says to do, I should have paid attention to why it was set up that way.