我有几个类,继承自一个。还有那些类所命名的异常。要说,像这样:
class Foo < ActiveRecord::Base; ...; end
class Bar < Foo; ...; end
class Baz < Foo; ...; end
class Exceptions::BarError < StandardError; ...; end
class Exceptions::BazError < StantardError; ...; end
现在我正在为他们编写控制器,来自Bar
和Baz
的控制器完全继承自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
。
它似乎仅在父类中进行评估,在儿童中无处可见。
我能做些什么吗?
我也很感激任何解释其性质的文档或文章的链接。