我在控制器中使用 find_by_sql() 方法,如何处理使用此方法执行 sql 查询引发的异常?
问问题
501 次
1 回答
0
您的问题有点含糊,但我尝试提供一些信息。
Rails 只是 Ruby,所以学习如何在 Ruby 中处理异常是这里的关键,我推荐
完成此操作后,坦率地说,这取决于您的应用程序,我想说您不应该在控制器中处理它,而应该由 Class 或(有点丑陋的)Model 来执行,因为它们应该具有业务逻辑.
作为旁注,您应该真正考虑是否要使用异常,Ruby,因为许多动态语言非常容易检查值,因此您可以避免引发它。
最后,如果您只想知道如何做到这一点:
begin
# find_by_sql
rescue ActiveRecord::RecordNotFound
# handle not found error
rescue ActiveRecord::ActiveRecordError
# handle other ActiveRecord errors
rescue # StandardError
# handle most other errors
rescue Exception
# handle everything else
end
或rescue_from
控制器中的方法。
从这个答案。
希望在某种程度上有所帮助。
于 2013-06-29T01:04:44.350 回答