从Rails索引操作中的单个资源异常中解救

时间:2013-11-18 17:14:56

标签: ruby-on-rails

对于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

1 个答案:

答案 0 :(得分:0)

当然!只是拯救例外。

所以,这个答案可能对你没有任何帮助,但这只是因为你没有提供有关你问题的任何有意义的描述。

这完全取决于您的错误发生的位置。您想从数据库查询,渲染错误,环境问题中解救吗?

根据错误原因,有不同的解决方案,如猴子修补程序,控制器中的简单救援或处理错误的一些中间件。