我有两个具有相同类名的控制器。一个继承自应用程序控制器,另一个继承自 AdminController(出于保密原因,我们将其称为示例控制器):
class SampleController < ApplicationController
def sample_method
//do stuff
end
end
module Admin
class SampleController < AdminController
def sample_method
//do the same stuff as the above controller's method
end
end
end
有没有办法让常规控制器(第一个非管理员)成为管理员示例控制器的超级控制器?
到目前为止我在互联网上找不到任何“双重继承”的例子。我也不想为为 SampleController 的管理版本执行相同任务的函数创建重复的代码。
希望这是有道理的。请原谅这里任何明显的无知 - 我是一个自学的 ruby 程序员:-)
所以首先,不,你没有两个同名的类。一个叫
SampleController
,另一个叫Admin::SampleController
。
那么不,ruby 不支持多重继承,但是您可以将常用功能移至“mixin”模块并
include
在两个控制器中。 在这里查看更多