2012-09-16 3 views
0

Ruby 1.8x 및 Rails 2.x에서 잘 돌아가는 작은 레일 앱이 있습니다. 유감스럽게도 루비 1.9.x와 레일즈 3, 으로 이동하기로 결정했습니다.Rails 3.2.6 and dbi

내 루비 응용 프로그램은 MySQL을 사용하며 액티브 레코드를 사용합니다. 그러나 레일즈 (2.x)가 나오기 전에 데이터베이스 을 채우기 위해 작성한 이전 pgm이 있습니다.이 응용 프로그램은 이제 완전한 응용 프로그램의 일부입니다. (나는/테스트 레일 외부 독립 PGM을 실행하고 더 문제가 없습니다.)이 독립 프로그램은 MySQL과 DBI 보석을 사용

. 이 프로그램을 모델에서 호출합니다 :

system("ruby standalonepgm.rb -args ") 

레일 2.0에서는 아무 문제없이 작동합니다. 3.0에서 프로그램은 오류를 포착하지 않고 종료됩니다.

콘솔에서 실행 나는 dbi gem을 찾을 수 없어 프로그램이 종료되는 것을 확인했습니다!

Gemfile에 dbi gem을 넣고 날짜를 묶는다면 진짜 문제가 있습니다. Rails가 시작되지 않습니다. 레일 서버가 모든 종류의 문제로 사망합니다. 나는 screendump를 넣을 수는 있지만 중요하지 않다고 생각합니다.

  1. DBI는 레일
  2. 레일의 신들과 확실히 호환되지 않는 샌드 박스를 만들고 그 샌드 박스에서 살아야한다라고 모든 프로그램 (단지 필요로 그 이유는 :

    는이 문제가 될 것 같다 문이 충분하지 않습니다 .. 그것은 Gemfile에 있어야합니다).

난 고칠 수 있습니까 아니면 난 레일의 숨겨진 검은 마술에 물린 사람 중 하나이며, 지난 8 주 이상의 노력이 튜브 아래에 있습니까?

+0

두 추적 조사 1 - 어떤 오류가 발생 했습니까? 2 - dbi가 새로운 버전의 Rails와 호환되는지 확인해 봤습니까? (제쳐두고 모든 것이 확실하다는 확신이 들지 않으면 새로운 언어 플랫폼으로 업그레이드하는 것이 바람직하지 않습니다. 호환 가능.) – Makoto

+0

Bundle.with_clean_env do 시스템을 사용하여 해결되었습니다. ("ruby pgm.rb"end – sms

+1

답을 찾은 것을 기쁘게 생각하지만 R 에일 즈와 관련된 마법이있다. 그것은 모두 평범한 오래된 루비입니다. 마법은 당신이 이해하기가 까다로운 코드 일뿐입니다. – Chris

답변

1

그것은 Bundle.with_clean_env를 사용하여 고정 된 것

나는 .. 번들 문서가 설명되어 케이스를 ..이 시스템 ("루비 pgm.rb" 끝을 읽어 본 적이 있었다 않습니다