2013-05-23 3 views
20

보석을 나열하는 순서가 중요합니까? 이 두 블록은 동등한가요?Gemfile의 보석 순서가 달라 집니까?

gem 'carrierwave' 
gem 'rmagick' 

그리고

gem 'rmagick' 
gem 'carrierwave' 
+0

글쎄, 오래지만, 의견을하지만, CarrierWave 제대로 이미지 URL을 모델에 쓰고 있지 않습니다. 모든 것을 삭제하고 다시 시작하겠습니다. 작동하지 않는다면 더 많은 정보를 얻을 수 있습니다. – dee

+0

'안개 '저장 장치를 사용하고 있습니까? 파일 저장소는 URL을 저장하는 것이 아니라 파일 이름을 저장해야합니다. url은 config를 기반으로 생성됩니다. – PinnyM

+0

'안개'를 사용하고있었습니다. 사실 그것은 모든 것이 파산했을 때입니다. 그러나 object.image => nil은 어쨌든 저장되지 않았습니다. – dee

답변

6

Bundler를 당신이 그들을 *를 나열하는 순서에 의해 보석 종속성을로드하지 않지만,이 기준에 사용하는 소스 우선 순위에 의해 이동 않습니다 :

  1. 명시 적 경로 또는 자식 옵션이 보석 의존성에 추가됩니다 (예 :

    ). 여러 소스가 처음에 마지막에서 검색합니다 추가 한 경우
  2. 명시 적으로 즉, gem 'actionmailer' 보석이 암시 적으로 gem 'rails'

  3. 에 필요한 그렇지 않으면 다른 보석 dependecies에서 암시 적으로 요구되는 보석에 대한 종속성을 정의했다. 순서를 MIGHT을 당신이하려는 (또는 어떤 보석이로드하는) 내용에 따라 매트의 대답에 따라 경찰 :

http://gembundler.com/v1.3/man/gemfile.5.html#SOURCE-PRIORITY


* 편집을 참조하십시오 문제. Even with bundler your gem order can be significant을 참조하십시오.

+0

당신은 보석에 대해 조사한 출처의 순서에 대해 이야기하고 있습니다,하지만 나는 그 질문이 Gemfile에있는 보석의 순서가 중요한지 아닌지에 대한 것이라고 믿습니다. 나는 대답이 '예'라고 믿습니다. – odigity

11

Bundle.require (Rails가 사용)을 사용하면 Gemfile에 표시된 순서대로 보석이 필요합니다. 에 항상이처럼 아니지만, has been this way for a while.

Carrierwave는 필요할 때 RMagick을 명시 적으로 필요로하므로 귀하의 경우에는 중요하지 않다고 생각합니다. 그러나 엄밀히 말하면 두 블록은 동일하지 않습니다.

관련 문제