You have a form who’s fields don’t match up to a model. What do you do?
Ask any web developer, and they will confidently defend one of three patterns: fat controllers, callbacks, or form objects. It’s an on-going, heated, debate.
I would like to propose a fourth pattern, form extensions, which I will argue is often the most pragmatic approach. It is probably not a new idea, but it certainly doesn’t get the lip-service it should. It deserves a name, and a first-class position in a web-developer’s toolbelt.