Rescue_from具有继承的动态异常

时间:2017-10-05 14:56:08

标签: ruby-on-rails ruby-on-rails-4

我有几个类,继承自一个。还有那些类所命名的异常。要说,像这样:

class Foo < ActiveRecord::Base; ...; end
class Bar < Foo; ...; end
class Baz < Foo; ...; end

class Exceptions::BarError < StandardError; ...; end
class Exceptions::BazError < StantardError; ...; end

现在我正在为他们编写控制器,来自BarBaz的控制器完全继承自FoosController。但是我有一个问题:我需要rescue_from错误,它们与控制器的名称相同。现在我有这个:

class FoosController < ApplicationController
  rescue_from "Exceptions::#{self.controller_name[0..-2].camelcase}Error", with: :show_error

class BarsController < FoosController; end
class BazsController < FoosController; end

但这不起作用。当我从调试输出获得时,它仅为rescue_from(我甚至没有)生成FooError。 它似乎仅在父类中进行评估,在儿童中无处可见。

我能做些什么吗?

我也很感激任何解释其性质的文档或文章的链接。

0 个答案:

没有答案