Ruby on Rails is really powerful but eventually you may find Ruby lacking a particular functionality or wishing for a particular feature in course of your work. After all, no programming language is perfect and Ruby core team cannot add whatever everyone wishes for. This is where plugins come into play. Rails 1.0 introduced a plugin system to make Rails a really flexible extension system letting programmers develop plugins which could be used to extend or override parts of Rails framework and share these features and modifications with other programmers in a reusable format.
Whoops - I guess I stopped thinking of them as plugins once they became gems in their own right. The plugins in the early days were really pretty different to the post 3.0 ones - there didn’t used to be actual apis for extending rails - you were either just adding code that stood on its own or monkey patching.