一种在大多数派生类中调用方法的方法

时间:2015-11-03 05:13:39

标签: ruby-on-rails ruby

如何在ruby对象的派生类中调用方法?

例如,在Rails中,可以有一个继承自ApplicationController的控制器,或者说Devise::RegistrationsController。所以,假设我希望用户覆盖其控制器中的某个方法,并从基类调用该覆盖:这样做的最佳语法是什么?

3 个答案:

答案 0 :(得分:2)

您无需做任何事情,方法查找始终从最派生的类开始。毕竟,这就是整个重载点。

class A
  def foo
    bar
  end

  def bar
    :A
  end
end

class B < A
  def bar
    :B
  end
end

B.new.foo
# => :B

答案 1 :(得分:0)

您是否尝试使用一种方法,例如UserController来代替Devise RegistrationsController?让我知道您要使用代码示例专门完成的任务。 :)

答案 2 :(得分:-1)

  

我要问的是,在其他语言中是否有类似虚拟继承的东西?

不,Ruby没有这个。