Когда вы определяете метод в дочернем классе, это переопределяет любой метод с тем же именем в родительском классе. (Это основной принцип в объектно-ориентированном программировании; он никоим образом не относится к ruby / rails.)
before_filter: :call
говорит: «Выполните метод call
перед любым действием контроллера».
Класс Child
наследует поведение before_filter
, но переопределяет метод call
. Поэтому выполняется его собственная реализация call
.
Я не могу посоветовать, как изменить ваш код, потому что я не знаю, чего вы пытаетесь достичь. Но, надеюсь, это объясняет, почему вы испытываете это (правильное) поведение.