我有一个 Sinatra 应用程序,我想开始在 Rails 中构建新功能,同时仍然支持现有的 Sinatra 功能。我尝试过以下策略:
- sinatra 的rackup 将一些请求路由到rails,将一些请求路由到sinatra
- sinatra 的rackup 包括rails
- Rails 的 Rackup 包括 sinatra。
我的许多搜索结果都是 Rails 3,而不是 4。此外,Rails 是否have生成数据库与使用 Sinatra 使用的数据库(在本例中是 Sequel gem 来访问 Sqlite3)。一般来说,我遇到的错误与 gem 和路径有关。 (尽管我确实重新捆绑并尝试了不同版本的路径。)
关于在仍然支持现有 Sinatra 应用程序的同时使用 Rails 4 的最佳方式有什么建议吗?
我认为 Rails/Rack 集成代码在 Rails 3 和 4 之间没有太大变化,所以你应该没问题。机架导轨指南 http://guides.rubyonrails.org/rails_on_rack.html更详细地解释了您可以制作config.ru
Rails 应用程序的文件如下所示:
require ::File.expand_path('../config/environment', __FILE__)
use Rack::Debugger
use Rack::ContentLength
run Rails.application
然后运行rackup config.ru
将启动运行您的 Rails 应用程序的机架服务器。
的答案这个问题 https://stackoverflow.com/questions/11165531/rackup-mounting-apps-vs-rails-mounting-for-sinatra-apps指出如果您从 Rack 运行 Rails 和 Sinatra,而不是在 Rails 中安装您的 Sinatra 应用程序routes.rb
文件中,对 Sinatra 应用程序的请求根本不会通过 Rails。答案还表明,在您的config.ru
您应该能够执行此操作来支持您的 Sinatra 和 Rails 应用程序:
map "/" do
run RailsApp::Application
end
map "/url1" do
run SinatraApp1
end
当然,您必须修改路由和应用程序名称以满足您的需求和应用程序。
我建议首先让您的应用程序通过一个 config.ru 运行,然后询问有关您的数据库的另一个问题,更详细地解释您希望的数据库设置以及您收到的确切错误消息是什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)