2010-06-09 2 views
2

벤더/플러그인에 엔진이 있습니다. 내 문제는, 내가 겉으로는 기본 응용 프로그램에서 모델로 엔진 모델을 확장 할 수 없다는 것입니다. 레일즈 엔진 : 애플리케이션 클래스가있는 모델 확장

내 폴더 구조 :

class ImageGallery < Item 
end 

그러나 레일 item.rb에 정의 된 방법 누락에 대해 불평 : 특별한

APPNAME 
-app 
    -models 
    -item.rb 
-vendor 
    -plugins 
    -image_gallery 
    -app 
    -models 
     -image_gallery.rb 

아무것도 ... 내 image_gallery.rb에 난 그냥이있다 . image_gallery.rb에서 이미지를 정의하면 작동합니다.

답변

1

당신은 정확히 문제 것은 이것이 당신의 대답 tsdbrown에 대한 development.rb

+0

과거에이 방법이 유용 했습니까? – tsdbrown

+0

production.rb와 비교하여 development.rb와 관련된 유일한 차이점은 이것입니다. 그래서 나는 짐작할 수 있습니다. 그러나 이것은 다른 성가심으로 이어지지 만 코드가 작동합니다. –

+0

감사합니다. 유일한 문제는 모든 변경 후에 서버를 다시 시작해야한다는 것입니다. –

1

로드 순서 문제라고 생각합니다. 공급 업체 디렉토리는 개발 모드에서 다시로드되지 않습니다. 엔진 모델에서 상속을 시도 할 때 앱의 모델이로드되지 않았습니다.

죄송합니다.이 문제를 해결할 수있는 방법을 모르고 있으며 절대로 발견하지 못했습니다. 나는 레일 3이이 문제를 해결할 것이라고 생각한다. 우리는 일반적으로 같은 엔진에 관련된 모델을 유지하거나 그것을 피하기 위해 메인 애플 리케이션으로 엔진 물건을 이동합니다. 이것은 짜증나게하고 나는 적절한 해결책을 알고 싶다.

프로덕션 모드로 시도하면 문제가 발생하지 않습니다. 이 경우 샷건을 사용하여 볼 수 있습니다.

+0

감사에 config.cache_classes = true을 설정하려고 할 수 있습니다. 나는 응용 프로그램 기반에서 개발하고 나중에 엔진으로 파일을 교환해야한다고 생각합니다. 또는 변경 될 때마다 서버를 다시 시작하십시오. –

관련 문제