2013-12-18 41 views
0

我不是主人,但我几年前一直在使用Ruby-On-Rails,并认为自己非常熟悉它。此外,我从过去10年一直以Web开发人员身份工作,从.Net开始。Ruby on Rails - 根据动作有条件的数据库状况

.Net我们用来在触发任何查询或进行事务之前手动创建数据库连接。但另一方面,当产生一个新的请求线程时,会触发一个初始化过程,其中包括建立一个数据库连接。

现在我们正在开发一个项目,在那里我们可能不需要为每个动作都建立数据库连接。是否有可能覆盖默认的数据库连接功能,并采取行动(可能是before_filter)?

PS:另一种方式我想创建一个额外的Sinatra网络应用程序,其中包含所有这些操作,并用它们来完成工作或获取数据。

回答

1

恩你在哪里读过Rails为每个请求设置数据库连接?我的理解是在需要时从连接池检出连接。

另外我很惊讶这是一个大问题!如果你不需要访问数据库(这意味着没有身份验证,对吧?),那么你应该缓存整个响应,服务器端和客户端。

检查出缓存指南:http://guides.rubyonrails.org/caching_with_rails.html和达利https://github.com/mperham/dalli

分离数据层(这样的Rails上的API之上)的客户端应用程序是一个很好的架构,我用成功的项目。然而,我建议葡萄代替西纳特拉。

+0

对不起,我误读了这句话。你是对的。就像.Net一样,它基本上汇集了连接并在需要时选择一个连接。我知道缓存,但在当前范围内似乎不合逻辑,因为这些操作实际上只是进行一些计算(主要是基于AJAX)并返回结果。 –