[英]how to make a sinatra app run in rails 4?
我有一個Sinatra應用程序,我想開始在Rails中構建新功能,同時仍然支持現有的Sinatra功能。 我嘗試了以下策略:
我的許多搜索都導致了Rails 3,而不是4。此外,Rails 是否必須生成數據庫而不是使用Sinatra正在使用的數據庫(在這種情況下,是使用Sequel gem訪問Sqlite3。)通常,我遇到的錯誤是關於寶石和路徑。 (盡管我確實進行了捆綁,並嘗試了不同版本的路徑。)
在仍支持現有Sinatra應用程序的同時使用Rails 4的最佳方法有何建議?
我認為Rails 3和4之間的Rails / Rack集成代碼沒有太大變化,因此您應該沒問題。 《 Rails on Rack指南》更詳細地說明了您可以為Rails應用程序制作一個config.ru
文件,如下所示:
require ::File.expand_path('../config/environment', __FILE__)
use Rack::Debugger
use Rack::ContentLength
run Rails.application
然后運行rackup config.ru
將啟動運行Rails應用程序的機架服務器。
對這些問題的答案這個問題指出,如果從機架運行Rails和Sinatra的,而不是安裝在Rails的你西納特拉應用routes.rb
文件,請您西納特拉的應用程序將無法通過Rails的去的。 答案還表明,在您的config.ru
您應該能夠同時支持Sinatra和Rails應用程序:
map "/" do
run RailsApp::Application
end
map "/url1" do
run SinatraApp1
end
當然,您必須修改路由和應用程序名稱以匹配您的需求和應用程序。
我建議您先通過一個config.ru運行您的應用程序,然后再問另一個有關您的數據庫的問題,更詳細地說明您希望數據庫設置是什么,以及得到的確切錯誤消息是什么。
Rails不需要創建數據庫,甚至不需要直接使用一個數據庫。 要生成沒有ActiveRecord的新Rails應用程序,請運行rails new APP_PATH --skip-active-record
。 然后,與其直接從Rails應用程序中使用數據庫,不如將請求發送到Sinatra應用程序,並讓Sinatra應用程序控制與數據庫相關的所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.