由find_by_sql()引发的Ruby on rails异常

Ruby on rails exception raised by find_by_sql()

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


你的问题有点模糊,但我试着提供一些信息。

Rails只是Ruby,所以学习如何处理Ruby中的异常是关键,我建议

  • 文件
  • 务实的程序员
  • Ruby学习

一旦你完成了它,它坦率地取决于你的应用程序,我会说你不应该在控制器中处理它,并且一个类或(有点丑陋的)模型应该这样做,因为它们应该具有Buisness Logic。

作为旁注,您应该考虑是否可以使用异常,Ruby,因为许多动态语言可以很容易地检查值,因此您可以避免提高它。

最后,如果您只是想知道如何做到这一点:

1
2
3
4
5
6
7
8
9
10
11
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方法。

从这个答案。

希望在某种程度上有所帮助。