Значит ли порядок драгоценных камней в вашем Gemfile?
Является ли порядок, в котором вы перечисляете свои драгоценные камни? Являются ли эти два блока эквивалентными?
gem 'carrierwave'
gem 'rmagick'
и
gem 'rmagick'
gem 'carrierwave'
Ответы
Ответ 1
Когда вы используете Bundle.require
(который Rails делает), драгоценные камни требуются в том порядке, в котором они появляются в Gemfile. In wasnt всегда так, но был таким образом на некоторое время.
Так как Carrierwave явно требует RMagick, когда это необходимо, я не думаю, что это должно иметь значение в вашем случае; но, строго говоря, два блока не эквивалентны.
Ответ 2
Bundler не загружает зависимости gem по порядку, который вы перечисляете им *, но он идет по приоритету источника, используя следующие критерии:
-
Явный путь или git параметры добавляются к зависимости от gem, например:
gem 'some-gem', github: 'somebody/some-gem'
-
Явно определенные зависимости для драгоценных камней, которые в ином случае требуются неявно из других зависимостей драгоценных камней, т.е. gem 'actionmailer'
gem неявно требуется gem 'rails'
-
Если вы добавили несколько источников, он будет искать от последнего до первого.
См. http://gembundler.com/v1.3/man/gemfile.5.html#SOURCE-PRIORITY
*
Изменить:. В соответствии с ответом Мэтта, в зависимости от того, что вы пытаетесь сделать (или каких камней вы загружаете), имеет значение МОЖЕТ. См. Даже с поставщиком, ваш заказ драгоценных камней может быть значительным.