Это можно сделать с помощью промежуточного программного обеспечения для стойки:
class RescueFromNoDB < Struct.new(:app)
def call(env)
app.call(env)
rescue Mysql::Error => e
if e.message =~ /Can't connect to/
[500, {"Content-Type" => "text/plain"}, ["Can't get to the DB server right now."]]
else
raise
end
end
end
Очевидно, что вы можете настроить сообщение об ошибке, и бит e.message =~ /Can't connect to/
может быть просто паранойей, почти все другие ошибки SQL должны быть обнаружены внутри ActionController::Dispatcher
.