Ruby-on-Rails - 取决于操作的条件数据库条件

时间:2013-12-18 06:14:45

标签: asp.net ruby-on-rails

我不是主人,但我现在已经使用Ruby-On-Rails几年了,并认为自己精通它。此外,过去10年来,我一直从事网络开发人员工作,从.Net开始。

.Net我们曾经在触发任何查询或进行交易之前手动创建数据库连接。但是Rails另一方面,在为请求生成一个新线程时,会触发一包初始化过程,包括设置数据库连接。

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

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

1 个答案:

答案 0 :(得分:1)

嗯,你在哪里读过Rails为每个请求建立一个数据库连接?我的理解是在需要时从连接池中检出连接。

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

查看有关缓存的指南:http://guides.rubyonrails.org/caching_with_rails.html和Dalli https://github.com/mperham/dalli

将客户端应用程序与数据层分离(因此在API之上使用Rails)是一个很好的架构,我已经成功地用于项目。不过我会建议Grape而不是Sinatra。