Ruby on rails rails应用程序中的rescue Moped::Errors::ConnectionFailure是如何实现的?

Ruby on rails rails应用程序中的rescue Moped::Errors::ConnectionFailure是如何实现的?,ruby-on-rails,ruby,devise,mongoid,Ruby On Rails,Ruby,Devise,Mongoid,我使用rails 3.2、mongoid 3、Desive 2.2.4、passenger和nginx 当我的rails应用程序找不到MongoDB时,我出现了错误“很抱歉,但出了点问题”。我想将错误消息更改为与错误更相关的内容。例如:无法连接到数据库 我看到,出现了Moped::Errors::ConnectionFailure,但我无法在应用程序控制器中使用rescue_从中拯救它。当Desive试图在初始化时从会话中获取用户时,似乎出现了错误。关闭:验证用户!无法帮助。找到发生错误的行。用

我使用rails 3.2、mongoid 3、Desive 2.2.4、passenger和nginx

当我的rails应用程序找不到MongoDB时,我出现了错误“很抱歉,但出了点问题”。我想将错误消息更改为与错误更相关的内容。例如:无法连接到数据库


我看到,出现了Moped::Errors::ConnectionFailure,但我无法在应用程序控制器中使用rescue_从中拯救它。当Desive试图在初始化时从会话中获取用户时,似乎出现了错误。关闭:验证用户!无法帮助。

找到发生错误的行。用
begin环绕它;rescue
块,如下所示:


开始
#引发错误的代码
rescue Moped::错误::连接失败=>e
提出我的错误
结束

当然,您需要定义MyOwnError:


类MyOwnError<标准错误;结束


祝你好运。您可以尝试用谷歌搜索Ruby错误和异常。

它会在warden中出现。我不想胡闹。你的代码有问题。监狱长工作。我使用Sinatra、Padrino和Rails,以及轻便摩托车/Mongoid和Warden,我一点问题都没有。听起来您的应用程序与MongoDB之间存在连接问题。不管怎样,你的问题是如何挽救错误,用你自己的信息提出你自己的错误,我回答了。我推荐的不是“猴子补丁”,它是简单的Ruby。但是,我记得最近一位同事在passenger/nginx+moped上遇到了类似的问题,无法连接。您是否尝试过在乘客/nginx之外运行代码?查看它是否在没有乘客/nginx的情况下工作。