Ruby on rails 如何使sinatra应用程序在rails 4中运行?
我有一个Sinatra应用程序,我想开始在Rails中构建新功能,同时仍然支持现有的Sinatra功能。我尝试了以下策略:Ruby on rails 如何使sinatra应用程序在rails 4中运行?,ruby-on-rails,ruby,ruby-on-rails-4,sinatra,Ruby On Rails,Ruby,Ruby On Rails 4,Sinatra,我有一个Sinatra应用程序,我想开始在Rails中构建新功能,同时仍然支持现有的Sinatra功能。我尝试了以下策略: sinatra的rackup将一些请求路由到rails,另一些路由到sinatra sinatra的机架包括导轨 rails的货架包括sinatra 我的许多搜索结果都是rails 3,而不是rails 4。此外,Rails是否必须生成db,而不是使用Sinatra正在使用的db(在本例中,使用Sequel gem访问Sqlite3)。一般来说,我得到的错误是关于gem和路
在仍然支持现有Sinatra应用程序的情况下,对使用Rails 4的最佳方式有何建议 Rails不需要创建数据库,甚至不需要直接使用数据库。要生成不带ActiveRecord的新Rails应用程序,请运行
Rails新应用程序\u PATH——跳过活动记录。然后,不要直接从Rails应用程序使用数据库,而是向Sinatra应用程序发送请求,让Sinatra应用程序控制所有与数据库相关的内容。我认为Rails 3和Rails 4之间的Rails/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,而不是将Sinatra应用程序安装在Rails的routes.rb
文件中,则对Sinatra应用程序的请求根本不会通过Rails。答案还显示,在您的config.ru
中,您应该能够做到这一点,以支持您的Sinatra和Rails应用程序:
map "/" do
run RailsApp::Application
end
map "/url1" do
run SinatraApp1
end
当然,您必须修改路由和应用程序名称,以符合您的需求和应用程序
我建议先让你的应用程序运行一个config.ru,然后再问另一个有关数据库的问题,详细说明你希望数据库设置是什么,以及你收到的确切错误消息是什么。谢谢。我实现了这个错误,现在一直得到这个错误:RuntimeError位于/rails,您必须在应用程序的配置中设置config.secret\u key\u base。(我在application.rb中设置了一个密钥。)