dee*_*dee 24 ruby ruby-on-rails gemfile
您列出宝石的顺序是否重要?这两个块是等价的吗?
gem 'carrierwave'
gem 'rmagick'
Run Code Online (Sandbox Code Playgroud)
和
gem 'rmagick'
gem 'carrierwave'
Run Code Online (Sandbox Code Playgroud)
mat*_*att 14
当你使用Bundle.require(Rails这样做)时,Gems按照它们在Gemfile中出现的顺序是必需的.并不总是这样,但这种方式已经有一段时间了.
由于Carrierwave在需要时明确要求RMagick,我认为在您的情况下它并不重要; 但严格来说,两个街区并不相同.
Bundler不会按列出的顺序加载gem依赖项*,但它确实使用以下条件按源优先级:
显式路径或git选项附加到gem依赖项,例如:
gem 'some-gem', github: 'somebody/some-gem'
Run Code Online (Sandbox Code Playgroud)明确定义宝石的依赖关系,否则需要从其他宝石依赖gem 'actionmailer'隐式地要求,即宝石隐含地要求gem 'rails'
如果您添加了多个来源,则会从最后一个搜索到第一个.
请参见http://gembundler.com/v1.3/man/gemfile.5.html#SOURCE-PRIORITY
* 编辑:按照马特的答案,取决于你想要做什么(或者什么宝石你加载)的顺序MIGHT重要.请参阅即使使用捆绑包,您的宝石订单也很重要.