gpt4 book ai didi

ruby-on-rails - 机架安装应用程序与 sinatra 应用程序的 rails 安装

转载 作者:数据小太阳 更新时间:2023-10-29 08:01:09 26 4
gpt4 key购买 nike

我想知道哪种方法可以更好地为 ruby​​ 安装不同的应用程序。我有 2 个 sinatra 应用程序和一个 rails 应用程序。

一种方法是使用 rails 作为基础并使用 routes.rb(在 rails 内)安装 sinatra 应用程序

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

这样两个 sinatra 应用程序都在 rails 中。

另一种方法是使用 rackup 使用 config.ru 安装所有三个应用程序(所有三个应用程序并行)

map "/" do
run RailsApp::Application
end

map "/url1" do
run SinatraApp1
end

map "/url2" do
run SinatraApp2
end

我无法找到一种方法相对于另一种方法的优势,或者出于什么原因哪种方法更好。

最佳答案

有趣的是除了后半部分(使用 rackup 安装的应用程序)之外还有任何显着差异

的任何请求

/url1

/url2

将直接从已安装的机架应用程序成为服务器,而无需实际在 rails 的中间件堆栈中传递请求,然后检测给定安装路径的有效机架应用程序。

这会发生在第一部分,您的 sinatra 应用程序安装在文件的 routes.rb 中定义的 Rails 中

所以我正在尝试在 routes.rb 而不是 config.ru挂载 您的 sinatra 应用程序,然后考虑您的请求会一直传递 rails middleware stack路由中间件在将请求传递给所需的 sinatra 应用程序时检测到适当的路径

一个简单的检查 你可以为此做的是尝试在这两种技术中点击你的路径,即 /url1/url2 你会看到 sinatra 应用程序 routes.rb 会在您的 Rails 应用程序中记录请求,而另一个则不会

希望对你有帮助

关于ruby-on-rails - 机架安装应用程序与 sinatra 应用程序的 rails 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11165531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com