I would say that this question is likely to be controversial, and this is the best approach, but my thoughts do not matter.
The biggest victory I would say when using a gem over a plugin, if this parameter is gem dependencies.
Rails plugins do not handle dependencies, so if you install a plugin that relies on other plugins / gems, you have the inconvenience of installing them. Where the installation of a gemstone can at the same time draw in any dependencies necessary for its launch. Take a cucumber pearl, for example:
' sudo gem install cucumber ' will install the cucumber pearl, but also install its dependencies, such as the webrat gem.
This may not seem very important, but when you are dealing with several environments (development, production, production, etc.), you are more likely to encounter dependency problems.
The only scenarios in which you probably want to get a plugin over a gem are convenient access to the plugin code. One case may be if the Infact Rails plugin is an engine, and you need to quickly dive into the code and see which class / view you want to override. Another case could be if you branched out a plugin like active_merchant and configured it as a git submodule in providers / plugins. In this case, fixing and pushing the changes upstream is usually much more convenient.
As for one itβs more difficult to upgrade more, stones have rubigems to manage them, which is fairly straightforward, and if you use git, then modulated plugins are the doddle for updating:
or equivalent for external SVN
Installing something like a gem or a plugin, however, should not affect the functionality of the code, since they are just two different ways of packing the code, in the end, it comes down to what you consider more convenient to use. Personally, I think that gems are much easier to maintain, unless I get hung up on the code, then I like the submodulated plugin more, because it will appear in the project tree in my editor.