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

Ruby on rails 机架安装应用程序与sinatra应用程序的rails安装,ruby-on-rails,ruby,rackup,Ruby On Rails,Ruby,Rackup,我想知道哪种方法可以更好地为ruby安装不同的应用程序。 我有两个sinatra应用程序和一个rails应用程序 一种方法是使用rails作为基础,并使用routes.rb(在rails中)安装sinatra应用程序 这样,两个sinatra应用程序都在rails中 另一种方法是使用rackup通过config.ru(所有三个应用程序并行)装载所有三个应用程序 我无法找到一种方法优于另一种方法的优点,也无法找到哪种方法更好的原因。有趣的是,除了后一部分(使用机架安装的应用程序)之外,还有任何显著

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

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

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

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


我无法找到一种方法优于另一种方法的优点,也无法找到哪种方法更好的原因。

有趣的是,除了后一部分(使用机架安装的应用程序)之外,还有任何显著的差异

任何要求

/url1

/url2

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

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

<> P> >我想尝试<代码> Reals<代码>您的西纳特拉应用程序在路由> Rb<代码>,而不是<代码> CONFIG.RU<代码>,请考虑您的请求<强>将始终沿用< /强> <代码> Rails中间件堆栈 其中,路由中间件在将请求传递到所需sinatra应用程序时检测适当的路径

对此,您可以做一个简单的检查,即尝试在这两种技术中点击您的路径,即
/url1
/url2
,您将看到sinatra应用程序路由。rb将在rails应用程序中记录请求,而另一个不会


希望这有帮助

,所以我认为没有理由通过rails安装它。用
config.ru
挂载它总是更好吗?但是当我在谷歌上搜索安装方法时,到处都能看到rails。通过rails安装它有什么好处吗?@Gauravsha我看到了两个原因
原因1:-
原因只有在rails线路中使用安装机架应用方法的人知道:),
原因2:-
,我想这是人们采用这种方法的主要原因是在
rails3
之前,
rails2
与rails3不同的是,rails2确实非常漂亮,在rails2中,虽然您可以创建并定义一个默认的
config.ru
,但是rails2并不隐式提供默认的
not
但是,提供默认的
config.ru
可能是采用这种做法的原因,我们可以看到,这种做法在
rails3
应用程序中仍然很明显。因此,config.ru方法更好?这篇文章还提供了一些有用的解释:
RailsApp::Application.routes.draw do
  mount SinatraApp1, :at => "/url1"
  mount SinatraApp2, :at => "/url2"
  # rest of the rail routes
end
map "/" do
  run RailsApp::Application
end

map "/url1" do
  run SinatraApp1
end

map "/url2" do
  run SinatraApp2
end