0

我在控制器中使用 find_by_sql() 方法,如何处理使用此方法执行 sql 查询引发的异常?

4

1 回答 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 回答