Plans change over time. You may find that as time has passed, various routes have become redundant. Perhaps you nested attributes, or it simply turned out that you didn't need to use a specific action yet. However, if the code for these unused routes/views/controllers is still there, then that's a problem.

Sure, you may be planning on utilizing these files soon, but for now, they're just taking up space. Mental space, that is. These files, and the behavior that they represent, are open loops. They are taxing you when you don't even realize:

  • When navigating your project tree, you'll see them and remember the functionality that you still have to implement to justify their existence. These prompts don't belong in your source code, but rather, your project management system.
  • You'll start shooting yourself in the foot. If you make any significant changes to your models, you find yourself updating code that isn't even used any more, just to silence errors.
  • They weigh down your testing. Why test features that aren't even accessible through any interface, public or private.

Just delete it. Everything's in source control anyways, right? If it turns out you do need it in the future, you can always walk back in time to find it again. Your project will instantly feel lighter, and easier to understand. You may even get a little happier about it.