2015-11-03 4 views
-1

Как вы называете метод в самом производном классе объекта ruby?Способ вызова метода в большинстве производных классов

Например, в Rails может быть контроллер, который наследует от ApplicationController, или скажет Devise::RegistrationsController. Итак, скажите, что я хочу, чтобы пользователь переопределил какой-то метод в своем контроллере и вызвал это переопределение из базового класса: что было бы лучшим синтаксисом для этого?

+0

То, что вы описали, - это не то, как работает наследование. Возможно, вы могли бы объяснить и спросить, как выполнить свою конкретную задачу. –

+0

Что я спрашиваю, есть ли что-то вроде виртуального наследования на других языках? если 'class B diffeomorphism

ответ

2

Вам нечего делать, поиск методов всегда начинается с самого производного класса. То есть, в конце концов, весь смысл перегрузки.

class A 
    def foo 
    bar 
    end 

    def bar 
    :A 
    end 
end 

class B < A 
    def bar 
    :B 
    end 
end 

B.new.foo 
# => :B 
+0

@ диффеоморфизм. Если это ответ (это совершенно нормально), тогда вопрос неверен. –

0

Вы пытаетесь использовать метод, например, с помощью UserController вместо Devise RegistrationsController? Позвольте мне знать, что вы пытаетесь выполнить, используя примеры кода. :)

+0

фактическую причину, по которой я пытался принудительно проверить унаследованный контроллер, это вопрос с исходной проблемой http://stackoverflow.com/a/33490887/1792701 – diffeomorphism

-1

Что я спрашиваю, есть ли что-то вроде виртуального наследования на других языках?

Нет, Ruby этого не имеет.

+0

По-видимому, я не могу проголосовать за собственный ответ –

Смежные вопросы