2009-03-09 2 views
2

핵심 기능 (레이아웃, 사용자, 메시징 등)과 코어 세트 위에 고유 한 기능을 추가하는 3 가지 버전의 레일 앱이 있습니다. 그것들 각각은 현재 현재 별도의 디렉토리에 있으며 개별적으로 배포됩니다.Rails 엔진은 여러 버전의 앱을 관리하는 데 적합합니까?

핵심 기능을 변경하면 현재 각 앱에 손으로 직접 복사해야하며 매우 지저분합니다.

3 개의 폴더를 핵심 응용 프로그램으로 만들고 싶습니다. git을 통해 변경 사항을 가져올 수 있으며, 플러그인 폴더의 엔진을 통해 고유 한 기능을 사용할 수 있습니다. 이 방법으로 핵심 기능의 한 버전을 유지하고 고유 한 기능을 별도로 유지할 수 있습니다.

이 문제를 해결하기위한 가능한 방법은 있습니까?

저는 엔진을 한번도 사용 해본 적이 없으며 레일즈 2.3을 사용하여 엔진을 사용 해본 적이 없습니다.

답변

3

레일 엔진이 여기에있는 해결책인지는 잘 모르겠지만 프로젝트 중 하나에서이 문제를 해결하는 방법을 알려드립니다.

우리는 핵심 프로젝트와 거의 동일한 데이터 (대부분 레일 모델)의 대부분을 사용하는 두 개의 프로젝트가 있습니다. 여기가 설정 우리가 어떻게되어

3 자식의 repos :
- 핵심 프로젝트
- 서브 프로젝트 2

핵심 프로젝트 완전히 정상 자식의 repo이지만,에 - 서브 1
프로젝트 하위 프로젝트, 핵심 프로젝트는 자식 하위 모듈입니다. 그런 다음 symlink가 추가되고 git을 통해 추적됩니다. 예 :

 
/subproject $: git submodule add [email protected]:core.git core 
/subproject $: cd app 
/subproject/app $: ln -s ../core/models models 

이제 subproject/app/models은 핵심 프로젝트에서 가져옵니다. 원하는 수의 파일에 대해이 작업을 수행 할 수 있습니다.

은 코어의 repo에서 업데이트 :

/하위 프로젝트 $ : 자식 서브 모듈 업데이트 자식이

은 분명히 그 파일을 복사하는 것보다 훨씬 쉽게 커밋 & &합니다. 나는 이것이 당신을 위해 일하기를 바랍니다.

관련 문제