Наше приложение Rails получает каналы из нескольких источников. Рабочим, которые загружают эти каналы, нужны зависимости от гемов для rmagick, баз данных oracle и многих других драгоценных камней. Короче говоря, у них очень разные потребности в зависимости, чем у основного веб-приложения. До Rails 3 и Bundler жизнь была хорошей.
Эти зависимости гемов рабочих не имеют отношения к нашему фактическому производственному веб-сайту. В Rails 3 ожидается, что один Gemfile будет содержать все эти зависимости. Это имеет неприятный побочный эффект, заключающийся в необходимости загрузки всех зависимостей гемов в производственное приложение, что может вызвать бессмысленное раздувание, возможные проблемы с безопасностью, утечки памяти, усложнение развертывания и другие проблемы. К сожалению, Bundler нарушает стандартный механизм require, который обеспечил бы выход из трясины, позволив нам просто запрашивать необходимые драгоценные камни только в рабочем и иметь их где-нибудь в системе, а не в комплекте. Рабочие используют наши модели рельсов для хранения своих данных.
Может ли кто-нибудь предложить решения, позволяющие сделать систему практичной в Rails 3? У меня есть соблазн заставить Gemfile использовать условные переменные среды в местах для управления командами gem, однако кажется, что Gemfile.lock может сделать этот проблемный переход от работы с одним рабочим скриптом (для каналов) к следующему, что привело бы к разные зависимости. Помощь???