2013-11-04 3 views
2

나는 Sinatra 앱을 보유하고 있으며 기존 Sinatra 기능을 지원하면서 Rails에서 새로운 기능을 구축하기 시작했습니다. 레일 sinatra 앱을 레일 4에서 실행하는 방법은 무엇입니까?

  • 레일 'rackup가시나를 포함시나
  • 시나의 rackup 일부 요청이 레일에

    1. 시나의 rackup 노선과 일부 포함 : 나는 다음과 같은 전략을 시도했습니다. (속편 일품 sqlite3를 접근이 경우.) 내 검색어 많은

    레일 (3) 결과는 또한 레일 는시나 사용 된 하나를 사용하여 대 DB를 생성이 있는가 4. NOT IN 일반적으로 내가 얻었던 오류는 보석과 길에 관한 것이 었습니다. (비록 내가 재 포장하고 다른 버전의 경로를 시도했지만.) 기존 Sinatra 응용 프로그램을 계속 지원하면서 Rails 4를 사용하는 가장 좋은 방법에 대한 제안이 있으십니까?

  • 답변

    5

    Rails/Rack 통합 코드가 Rails 3과 4 사이에서 많이 변경되지 않았다고 생각합니다. 당신의 레일 응용 프로그램을 실행하는 랙 서버를 시작합니다

    require ::File.expand_path('../config/environment', __FILE__) 
    
    use Rack::Debugger 
    use Rack::ContentLength 
    run Rails.application 
    

    다음 rackup config.ru을 실행 : The Rails on Rack Guide 당신처럼 보이는 레일 응용 프로그램에 대한 config.ru 파일을 만들 수 더 자세히 설명합니다.

    this question에 대한 답변은 Rails의 파일에 Sinatra 앱을 마운트하는 대신 랙에서 Sails를 실행하면 Sinatra 앱에 대한 요청이 전혀 실행되지 않는다고 지적합니다. 대답도 보여 당신이 config.ru 당신이 당신의시나와 레일 모두 앱을 지원하기 위해 할 수 있어야에서 그 :

    map "/" do 
        run RailsApp::Application 
    end 
    
    map "/url1" do 
        run SinatraApp1 
    end 
    

    당신은 당신의 필요와 응용 프로그램에 맞게 경로 및 응용 프로그램 이름을 수정해야을, 당연하지.

    첫 번째 config.ru를 통해 앱을 실행 한 다음 데이터베이스에 대한 다른 질문을하고 데이터베이스 설정을 원하는 부분과 정확한 오류 메시지가 무엇인지 자세히 설명하는 것이 좋습니다. 점점 그렇습니다.

    +0

    감사합니다. 구현하고이 오류가 지속적으로 발생 : RuntimeError at/rails config.secret_key_base를 앱의 config에 설정해야합니다. (application.rb에 비밀 키가 설정되어 있습니다.) – glamouracademy

    1

    레일즈는 데이터베이스를 만들거나 직접 사용할 필요가 없습니다. ActiveRecord없이 새로운 Rails 앱을 생성하려면 rails new APP_PATH --skip-active-record을 실행하십시오. 그런 다음 Rails 앱에서 직접 데이터베이스를 사용하는 대신 Sinatra 앱에 요청을 보내고 Sinatra 앱이 데이터베이스와 관련된 모든 것을 제어하도록합니다.

    관련 문제