2012-06-22 2 views
3

나는 루비에 대한 다른 애플 리케이션을 탑재하는 더 좋은 방법이 될 수 궁금 해서요. 2 개의 sinatra 앱과 1 개의 레일 앱이 있습니다.rackup mounting apps 대 sinatra 애플 리케이션을위한 레일 장착

한가지 방법은 염기로서 레일을 사용하고 routes.rb (레일 내)

RailsApp::Application.routes.draw do 
    mount SinatraApp1, :at => "/url1" 
    mount SinatraApp2, :at => "/url2" 
    # rest of the rail routes 
end 

이 방법 모두시나 앱 레일에를 사용시나 애플리케이션을 탑재하는 것이다.

다른 방법은 세 가지 사용 config.ru (병렬 세 가지 응용 프로그램)

map "/" do 
    run RailsApp::Application 
end 

map "/url1" do 
    run SinatraApp1 
end 

map "/url2" do 
    run SinatraApp2 
end 

내가 다른 통해 하나의 장점을 찾을 수 없습니다 오전 또는 어떤 방법이 무엇인지에 대한 더 나은을 마운트 rackup 사용하는 것입니다 이유.

+0

이 도움말 : https://robots.thoughtbot.com/how-to-share-a-session-between-sinatra-and-rails – user1515295

답변

3

/url1

/url2

직접 서버가 될 것입니다에 후반 (응용 프로그램이 사용 rackup 장착) 사실

모든 요청을 별개로 상당한 차이가 흥미 롭 실제로 레일의 미들웨어 스택에 요청을 전달하지 않고 탑재 된 랙 애플리케이션에서 제거한 다음 주어진 마운트 된 P에 대해 유효한 랙 애플리케이션을 탐지합니다 ath.

당신의시나 응용 프로그램이 그래서 당신이 mount하려고하는 파일

routes.rb에 정의 된 레일 내부에 장착되는 경우 요청하는 대신 config.ruroutes.rb에시나 응용 프로그램이 다음 사실을 고려 첫 번째 부분에서 일어날 것

모든

는 간단한 당신이를 위해 할 수있는 확인 원하는시나 응용 프로그램에 요청을 전달로 라우팅 미들웨어 적절한 경로를 감지rails middleware stack y를 타격 시도하다 함께 전달 될 것입니다 우리 /url1 즉, 경로 또는 두 기술의 /url2 당신은시나 애플리케이션 routes.rb이 다른 하나 반면에 당신의 레일 응용 프로그램에서 요청을 기록 할 볼 것이다 것하지

희망이 문서는 몇 가지 유용한 설명을 너무 제공

+0

레일을 통해 마운트 할 이유가 없습니다. 'config.ru '로 마운트하면 더 좋을 것입니다. 하지만 어디에서나 Google에서 마운트 방식을 사용하면 레일 1이 표시됩니다. 레일을 통해 마운트 할 때의 이점은 무엇입니까? –

+0

@ GauravShah 두 가지 이유가 있습니다. 이유 'Reason 1 : -' 레일 루트에서 마운트 랙 어플리케이션의 접근법을 사용하는 사람들에게만 알려진 이유 :)'Reason-2 : ' 사람들은'rails3 '이전에'rails2'가 rails3과 달리 랙을 매우 아름답게 받아 들였습니다. 레일즈 2는 기본'config.ru'를 암시 적으로 제공하지 않습니다. 디폴트'config.ru'는'rails3' 응용 프로그램에서도 여전히 볼 수있는 연습을 채택한 이유 일 수 있습니다. – Viren

+0

config.ru 방법이 더 좋습니다? –

관련 문제