Подтвердить что ты не робот

Вызов метода базового класса из перегруженного метода в подклассе

Возможно, я просто не использую правильную терминологию для Ruby (и если я, пожалуйста, поправьте меня), но Google просто не помогает мне в этом.

У меня есть класс (назовите его OrderController), который расширяет другой класс (назовите его BaseStoreController). В BaseStoreController я определил before_filter, который используется на моем сайте, с небольшим, за исключением моего OrderController. В этой конкретной ситуации мне нужно было определить пользовательский before_filter, который должен выполнить некоторую дополнительную логику, а затем вызвать before_filter, определенный в моем BaseStoreController.

Я не знаю, как это сделать.

Вот что я пробовал, но похоже, что ключевое слово "супер" не то, что я ожидал от него:

class BaseStoreController < ActionController::Base
    before_filter :authorize

    protected
        def authorize
            #common authroization logic here
        end
 end

и

class OrderController < BaseStoreController
    before_filter :authorize

    protected
        def authorize
            #additional authroization logic here
            super.authorize
        end
 end

Конечным результатом моего кода является то, что метод авторизации в OrderController не работает со следующей ошибкой:

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.authorize
4b9b3361

Ответ 1

Вы пытались вызвать метод базового класса "authorize" только с "super" вместо "super.authorize"?