Моноидное перенаправление ошибок

Я хотел бы иметь возможность перенаправить вывод, возникший из-за ошибки из mongoid. У меня есть простой код в следующем макете:

begin
  [ruby code here to query database]
rescue [Moped Exception here] => e
  puts e.message
end

Когда происходит ошибка, я получаю ее в следующем формате:

Moped::Errors::ConnectionFailure: Could not connect to a primary node for replica set <Moped::Cluster nodes=[<Moped::Node resolved_address=”ipAddress”>, <Moped::Node resolved_address=”ipAddress”>]>

Эта ошибка отображается несколько раз, прежде чем исключение будет фактически обнаружено и отображено. Я согласен с тем фактом, что ошибка возникает, но я хотел бы скрыть вывод ошибки выше / не отображать ее, а только отображать исключение. Есть ли какой-нибудь способ перенаправить вывод ошибки, возникший из-за ошибки ConnectionFailure. Или способ настроить mongoid так, чтобы сообщения об ошибках не отображались (я запускаю с консоли)? Любой способ перенаправить ошибки будет полезным.

1 ответ

В документах mongoid говорится, что вы не должны пытаться спасти от ConnectionFailure: http://mongoid.org/en/moped/docs/driver.html

Кроме того, вы говорите, что вам все равно, если это произойдет. Какой код вы пытались перенаправить пользователю? И что вы используете (Rails, Sinatra и т. Д.)?

Для Rails я обычно делаю следующее:

  if !request.env["HTTP_REFERER"].blank? and request.env["HTTP_REFERER"] != request.env["REQUEST_URI"]
   redirect_to :back
 else
   redirect_to root_path
 end

Это попытается отправить пользователя обратно на его предыдущий путь, если это возможно (если он был сохранен), иначе это приведет его к root.

Другие вопросы по тегам