When I had first started programming in Rails, someone recommended the gem Inherited Resources to me as a matter of course, implying that to go without it was to reinvent the wheel. It definitely made many things easier for us, and it’s very well-made; it was already built to handle almost anything we threw at it. Initialization values passed to the “new” action? Got it. Complicated parentage defined in the path? Doable.
Now that I’ve started a new project, however, I’ve realized that I don’t really want to use it anymore. Too many times I ran into situations where I had to figure out how to build my controllers around the Inherited Resources functionality, such as when I had to introduce extra variables that depended on variables already built by IR behind the scenes, or when the variables defined in the path to the action were greatly varying. It was also fairly difficult to debug problems when the controllers were so obfuscated by outside function calls and the solutions to them had to be removed by so many degrees. I realized that in the end it may have been faster (to program and to run) to just build it all myself, so that any modifications were easy to insert at exactly the appropriate place and any problems were easy to find and address.
It’s nothing against Inherited Resources; as I said, it is very well-made. I just think that it’s not really for everyone. My teacher may have been exaggerating a little bit. I suppose we’ll see how I feel after reinventing the wheel a few times.