It is far better to use plugins than engines (gems).
A plugin can be deployed together with your application to your hosting server, but if you use engines/gems you will have to install them also on your host. Only if this is allowed …
Thanks Adam for the clarification, I was completely wrong …
I should have been probably write Plugins vs. Gems, not engines.
And I did not know you can pack your gems with your application to be deployed together.
I just wanted to stress out when you install a plugin it is very visible in your /vendor folder. When you install a gem it will be added to your Rails, and will be not visible in your app structure. I think this is a considerable difference.
If you want to add some new functionality to your current app you’ll probably install it as a plugin. If you want to use the new functionality in all your Rails projects you’ll probably install it as a gem.



That’s completely wrong. There’s no difference in terms of “installation” between plugins and “engines”, because they are the same - http://rails-engines.org/news/2007/01/03/engines-are-dead-long-live-engines/). An “engine” is just a plugin.
It’s also possible to unpack gems into your application and deploy them with your application, without needing to install them in in the system areas of your hosting server (http://www.youtilize.com/post/how-to-host-ruby-on-rails-app-on-shared-hosting).
Thanks Adam for the clarification, I was completely wrong …