Подтвердить что ты не робот

Значит ли порядок драгоценных камней в вашем Gemfile?

Является ли порядок, в котором вы перечисляете свои драгоценные камни? Являются ли эти два блока эквивалентными?

gem 'carrierwave'
gem 'rmagick'

и

gem 'rmagick'
gem 'carrierwave'
4b9b3361

Ответ 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


* Изменить:. В соответствии с ответом Мэтта, в зависимости от того, что вы пытаетесь сделать (или каких камней вы загружаете), имеет значение МОЖЕТ. См. Даже с поставщиком, ваш заказ драгоценных камней может быть значительным.