2011-09-10 3 views
0

인증을 위해 Devise를 사용하는 Rails 3 프로젝트를 Rails 3.1 탑재 가능 엔진으로 업그레이드하는 중입니다. 업그레이드 후 유증이 제기 제대로 초기화 될 것 같지 않는 NameError : 당신이 아마Rails 3.1로 업그레이드 한 후에 종속성이 올바르게로드되지 않습니다.

: 일반 응용 프로그램 환경 외부 고안를 사용할 때 호환성을 암시

uninitialized constant Devise (NameError) 

This issue from 2010, 독립 실행 형이 아니라 Devise가 필요하지 않습니다.

This more recent issue은 실제 문제는 아니지만 어쩌면 아직 아닙니다.

나는 그것이 어디에서 왔는지 잘 모른다. CanCan과 Compass와 같은 많은 의존성이 업그레이드 후 부트시에 오류를 일으키기 시작했습니다. 모두 method missing, uninitialized constant 등이었다. 저는 이것을 이것을 제거하거나보다 현대적인 대안으로 대체 할 수있는 기회로 삼았습니다. 아마 나는 안된다.

누구든지 문제를 해결하는 방법을 알고 계십니까?

답변

2

내 엔진의 모듈 정의 전에 내 의존성을 명시 적으로 요구하여 문제를 해결했습니다.

+0

이것은 실제로 대부분의 Ruby 프로그램을 작성해야하는 방법입니다. – yfeldblum

+0

@ Justice, Rails가 나를 위해이 작업을 수행 할 것으로 기대했습니다. 네, 전 망 했어요. :(명백하게, 엔진은 Bundler.require'의 마법을 즐기지 않습니다. –

+3

'.gemspec'가'devise','cancan','compass' 등에 대한 의존성을 선언한다면, Rubygems 라이브러리를 작성하는 경우 모든 경우에'.gemspec '에 의존성을 선언해야하며 절대적으로 의존성을 요구해야합니다. 당신은 그들을 사용합니다. – yfeldblum

관련 문제