2010-02-04 3 views
0

하나의 Rails를 설치 한 다음 여러 개의 앱에 사용할 수 있습니까?여러 앱에 대해 Rails를 단일 설치

이를위한 가장 좋은 방법은 무엇입니까 ...

siteroot/app1 (rails) 
siteroot/subsite1 (regular static html site) 
siteroot/app2 (rails) 
siteroot/subsite2 (regular static html site) 

등 : 예를 들어, 나는 다음과 같은 구조를 가지고 싶다?

답변

0

레일즈는 Ruby 언어 위에 구축 된 프레임 워크입니다.
여러 개의 Rails 애플리케이션을 제공하기 위해 Rails가 설치된 한 대의 서버를 사용하는 방법을 묻는 것처럼 들립니다. 그래서 당신은 각 앱의 웹 서비스를 시작해야합니다

siteroot/app1 $ script/server -p 80 -e production (+ option for daemonize server, I forget) 
siteroot/app1 $ cd ../app2 
siteroot/app2 $ script/server -p 81 -e production (+ option for daemonize server, I forget) 

나는 당신의 "subapps"혼란 조금 해요. 왜 하위 응용 프로그램입니까, 왜 기본 응용 프로그램을 처리하는 동일한 웹 서비스에서 렌더링 할 수 없습니까?

2

기술적으로 가능할 수도 있지만 확실히 지원되지는 않습니다. 컨벤션에 대한 협약은 기억하십시오. rails appdir을 통해 새로운 Rails 응용 프로그램을 만들면 하나의 응용 프로그램을 만들고 그 안에있는 모든 내용이 해당 응용 프로그램의 일부입니다. Rails 설치가 아닙니다. Rails가 다른 곳에서 설치되어 있으면 (/ var/lib/gems for me) Rails를 구성하는 모든 코드는 여러 응용 프로그램간에 공유됩니다.

간단히 말해 두 개의 개별 디렉토리에 두 개의 개별 앱이있는 것이 가장 좋습니다. 두 가지 응용 프로그램을 결합해야하는 이유는 없습니다. 리소스 나 데이터베이스를 공유해야하는 경우 다른 컨트롤러가있는 하나의 앱이거나 공통 코드가 라이브러리 또는 플러그인으로 분리 된 두 개의 개별 앱이어야합니다.

+0

나는 레일즈가 어떻게 설치되어 있고, 많은 응용 프로그램과 많은 응용 프로그램을 가지고 있는지에 대해 잘 알고 있습니다. 그래서 진짜 질문은, 파일의 일부를 재사용 할 수있는 방법과 달리 많은 앱을 만드는 데 성능 문제가 있습니까? 대부분의 앱은 비즈니스 측면에서 완전히 별개이지만 비슷한 기능을 수행합니다. 그것은 모든 애플 리케이션에서 비슷한 기능을 구현하는 것이 매우 건조한 것 같지 않습니다. 아마도 대답은 재사용 가능한 코드를 내 보석이나 다른 재사용 가능한 옵션으로 끌어내는 것입니까? – kidbrax

+0

예, 큰 프로젝트에 대한 대답은 재사용 가능한 코드를 보석으로 뽑아내는 것입니다. 그러면 많은 앱이 보석을 공유 할 수 있습니다. 성능 질문은 별도입니다. 이는 전개 환경에 따라 다릅니다. –

+0

@ MEAGER가 거의 대답하지 못했다는 것을 알았지 만 여러분 모두에게 감사합니다. – kidbrax

관련 문제