Since the parameters can differ between the delegated types (sort of the whole point of using them) this does not seem to be possible - unless there is a way to define on the individual (sub)models which parameters the controller should expect?
I mean, it works if I add all the parameters used by all my delegated types to params.expect(delegator: [ delegateee: [ :all, :possible, :paramaters, :that, :a, :delegatee, :can, :possibly, :use]]) but that just doesn’t feel right. The only attribute they share is :id and I’m not even using that since I set update_only: true.
Seconding this. The happy path OP is looking for is to have a controller corresponding to each type. Then each controller is only responsible for defining strong params for its corresponding type, and the shared params can be provided through a parent controller or a concern.