One of the fastest ways to add functionality to your applications is to install Rails
plug-ins. Chapter 9 showed off
validates_existence_of and Chapter 14 used
restful_authentication, but those
are only two of the most common ones. You can find a directory of many more—1,129 at
this writing!—at http://agilewebdevelopment.com/plugins.
Installing plug-ins is a quick way to make Rails do more for you. One especially nice feature of Rails is that when you install a plug-in, you only affect the project in which you install it. None of your other Rails applications are affected at all. This makes it easy to install plug-ins, try them out on experimental projects, and add them to more complicated projects later if you decide they proved worthwhile.
Eventually, you may also be ready to package your own code as a plug-in. When you reach that point, Advanced Rails (O’Reilly, 2008) or The Rails Way (Addison-Wesley, 2007) can show you how to make that work. When you distribute your plug-ins, remember to provide two key things that will help people use your plug-in: a test suite and detailed documentation. It may be harder to use a great plug-in that comes with only a brief API sketch than to code functionality from scratch.
If you reach the point where you’d like to change Rails, becoming a contributor, that’s an option Rails’ creators would like to encourage. For details on how to do that, see http://railscasts.com/episodes/113.