Основным отличием является то, что гем - это то, что устанавливается в системе, в которой работает ваше приложение Rails, тогда как плагин устанавливается вместе с вашим приложением, плагин не устанавливается на системном уровне.
предположим, что вы используете rvm, и давайте рассмотрим этот пример.
у нас есть два приложения app1 и app2
обаработают на общем наборе гемов rvm с именем gemset1
, когда вы добавляете гем в файл gemfile app1 и запускаете bundle install, а затем находитесь в том же наборе гемов rvm, которыйэто gemset1 , если вы запустите второе приложение app2 , гем будет доступен и во втором приложении
В то время как с плагином это не так, потому чтоплагины устанавливаются на уровне приложений, а не на уровне системы