Я думаю, что эта ошибка не из исходного кода, который вы опубликовали, а из того места, где она называется.
Я могу доказать это с помощью этой реализации, которая также использует 1.9.2-p290:
module ActionController
class UnknownAction; end
class RoutingError; end
end
module ActiveRecord
class RecordNotFound; end
end
class Test
def test_exception
raise "error"
rescue
handle_exceptions($!)
end
def test_failing
else puts "invalid"
end
end
def not_found
puts "not found"
end
def internal_error(e)
puts e
end
def handle_exceptions(e)
case e
when ActionController::UnknownAction, ActiveRecord::RecordNotFound, ActionController::RoutingError
not_found
else
internal_error(e)
end
end
end
Test.new.test_exception
Test.new.test_failing