我在我的控制器中使用了find_by_sql()方法,如何处理使用此方法执行sql查询引发的异常?
答案 0 :(得分:0)
您的问题有点模糊,但我尝试提供一些信息。
Rails只是Ruby,所以学习如何在Ruby中处理异常是关键,因为我推荐
一旦你完成了它,它坦率地取决于你的应用程序,我会说你不应该在控制器中处理它,并且一个类或(有点丑陋)模型应该这样做,因为它们应该有商业逻辑。
作为旁注,你应该考虑是否可以使用异常,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
方法。
来自this answer。
希望在某种程度上有所帮助。