对于show动作,对未捕获的异常返回500错误是正常的,但对于索引操作,如果单个错误资源不会导致整个请求失败,将会很有帮助。有没有办法从这些例外中解救并返回其余资源以及错误列表?
详细信息:我正在使用RABL来渲染这样的JSON模板(但我认为解决方案可能是一般的而不是特定于此):
# app/controllers/happenings_controller.rb
def index
@happenings = current_person.happenings
end
# app/views/happening/index.json.rabl
collection @happenings
extends 'happenings/show'
# app/views/happening/show.json.rabl
object @happening
attributes :id, :name, :description
node :creator, if: lambda { |s| s.creator? } do |s|
# !!! This is where an exception on a single resource was blowing up the whole request
partial("people/show", :object => s.creator)
end
答案 0 :(得分:0)
当然!只是拯救例外。
所以,这个答案可能对你没有任何帮助,但这只是因为你没有提供有关你问题的任何有意义的描述。
这完全取决于您的错误发生的位置。您想从数据库查询,渲染错误,环境问题中解救吗?
根据错误原因,有不同的解决方案,如猴子修补程序,控制器中的简单救援或处理错误的一些中间件。