我有一个应用程序,主要是在mysql中,但对于一些页面需要连接到另一个mssql服务器。我已经成功地做到了这一点,但是当我在mac笔记本电脑上进行开发时,sql服务器在另一台主机上,它有时是不可用的。当服务器不可用时,有没有一种合适的方法来处理连接?即,我仍然希望开发和测试运行的部分不依赖于该服务器。
如果生产rails应用程序失去了与ms sql server的连接,这也很方便--如果能够捕获错误并显示一条漂亮的"Server unavailable“消息可能会更好……但仍然允许应用程序的其余部分不依赖于该数据库运行。
发布于 2011-08-21 10:50:19
我会考虑在需要数据库访问的页面上使用before过滤器。当您检测到数据库关闭时,重定向到非数据库页面并闪现一条错误消息。
before_filter :check_for_database
def check_for_database
begin
ActiveRecord::Base.connection_pool.with_connection {|con| con.active?}
rescue => err
flash[:error] = "The database is down, please use pages that dont require database access."
redirect_to :controller => 'home'
return
end这是受到RailsForum here上的一篇文章的启发。
https://stackoverflow.com/questions/7135756
复制相似问题