2011-11-01 5 views
0

초기화 프로세스가 Gem과 어떻게 작동하는지 궁금합니다. 기본적으로 오늘 레일 프로젝트에 포함 된 보석에서 Rails 애플리케이션에있는 상수를 호출하려고 할 때 문제가 발생했습니다.Rails에로드 된 Gem에서 상수가 초기화되는 방식을 안내해 줄 수 있습니까?

의 정수로 공기 :: 플라이

레일에서 잘 일정한 하중하지만 보석이 일정로드 할 수 없습니다. 내 목표는 레일즈 애플리케이션 클래스를 젬의 컨텍스트에서 확장하여 내 코드를 모듈화하는 것이 었습니다.

어떻게 보석 응용 프로그램 클래스를로드 할 수 있습니까?

+0

Gem에 'Air'에 대한 런타임 종속성이 올바르게 설정되어 있는지 확인하여 보석이로드되기 전에로드되도록하십시오. – d11wtq

+0

어떻게하면 되나요? –

+1

공기는 보석입니다, 맞습니까? Rails 앱에서 정의 된 것이 아닙니다. gemspec :'s.add_runtime_dependency "air"'에 추가하면됩니다. Rails 앱에서 정의 된 것일 경우, 사용자가하려는 것은 작동하지 않습니다. 보석은 앱에 의존 할 수 없습니다. 런타임시 종속성을 전달하도록 리팩터링해야합니다 (종속성 삽입). – d11wtq

답변

2

Bundler는 런타임 종속성에 대해 gemspec 파일을 검사하여 gem의 종속성을 해결합니다. 보석의 X의 gemspec이 add_runtime_dependency "Y"이있는 경우, 보석 Y 에어 보석이다 가정

그래서 보석 X. 전에로드됩니다, 귀하의 경우, 당신은 당신의 gemspec에 추가해야합니다

s.add_runtime_dependency "air" 

이를)

관련 문제