我有两个具有相同类名的控制器.一个继承自应用程序控制器,另一个继承自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的Admin版本执行相同任务的函数创建重复的代码.

希望这是有道理的.请原谅我在这里明显的无知-我是一个自学的Ruby程序员:-)

推荐答案

首先,不,你没有两个同名的类.一个叫SampleController另一个叫Admin::SampleController

那么,不,Ruby不支持多重继承,但是您可以将公共函数移动到一个"Mixin"模块和两个控制器中的include.See more here

Ruby-on-rails相关问答推荐

使用ImportMaps将HighLightJS添加到rails 7.1

Rails 7,Hotwire 动态表单,更新值不起作用

刺激不添加侦听器以搜索表单输入

在 Rails 3 中,如何在路由中使用锚点作为 ID?

键入rails 控制台无法启动?

rails4 未知编码名称 - CP720

Rails 中页面视图的简单计数器

从 ActiveRecord 模型的集合中构建哈希

设计和强大的参数

DateTime.now 还是 Time.now?

适合mysql比较的Ruby datetime

Rails 4 查找没有子元素的父母

升级到设计 3.1 => 获取重置密码令牌无效

如何在 Rails 中验证日期以使其在今天之后?

加载常量时自动加载常量时检测到循环依赖

通过 Ruby 或 Rails 的 LDAP

如何检测导致 Rake 中的弃用警告的原因

您推荐哪些工具来分析 Rails 应用程序?

Date.current 和 Date.today 有什么区别?

没有UTC的Rails 3默认日期时间格式