2012-01-16 4 views
1

나는 오래된 레일 어플리케이션을 가지고 있습니다. 그리고이 응용 프로그램에는 다른 버전의 동일한 보석이 필요합니다.레일 묶음 - 하나의 보석 2 가지 버전

예를 들어, 지금

보석 'actionmailer'2.3.5와 'actionmailer'2.3.2 보석 'actionpack', '2.3.5'과 'actionpack', '2.3.2'

를 사용

왜 그런지 물어 보지 마세요. 이것은 오래된 앱이며 매우 방대합니다. 현재 레일즈 버전 2.3.5

이제 내 보석 컨트롤을 위해 bundler를 사용하려고합니다. 그러나 Bundler는 설정에서 하나의 보석을 두 번 사용할 수 없습니다. 아니면이 같은 오류를 볼 수 있습니다 Gemfile에 :

Bundler 프로그램은 "actionpack"보석 호환 버전을 찾을 수 없습니다 datanoise-actionwebservice (= 2.3.2) 루비 = 2.3.2 ( actionpack에 따라 달라집니다) 그래서 루비

rails (= 2.3.5) ruby depends on 
    actionpack (2.3.5) 

, 나는이 문제를 해결 여부와 나는 Bundler 프로그램을 사용은`t 수 있습니까?

답변

1

datanoise-actionwebservice는 gemspec에서 actionpack 및 activerecord 버전에 대해 매우 (너무) 제한적으로 보입니다. 그러나 내부적으로이 보석들을 '> = 2.3.0'버전으로로드하려고 시도합니다 (lib/action_web_service.rb 참조).

나는이 보석을 포크로 만들려고 시도하고 gemspec 패치를 제안하므로 actionpack 및 activerecord의 버전 요구 사항이 '> = 2.3.2'로 변경됩니다.

gem 'datanoise-actionwebservice', :git => "http://github.com/youraccount/actionwebservice.git" 

잘하면 그것뿐만 아니라 2.3.5와 함께 작동합니다 :

그런 다음 프로젝트의 Gemfile가 패치 된 버전을 사용하여 업데이트 할 수 있습니다.

+0

고마워 !! –

1

아니요, datanoise-actionwebservice을 버전 2.3.5로 업그레이드하거나 rails을 2.3.2로 다운 그레이드해야합니다.

가능한 경우 datanoise-actionwebservice으로 업그레이드하는 것이 좋습니다.

+0

너무 나쁜 :(데이터 버전 2.3.5의 'datanoise-actionwebservice'가 없습니다.) 2.3.2에 대한 내 앱의 다운 그레이드도 나에게 좋지 않습니다. 그래서 ... 내 생각에는 ... 더 이상 옵션이 없습니까? –

+0

그것은 가능하지 않습니다 : (버전 2.3.5는 존재하지 않습니다 –

관련 문제