gpt4 book ai didi

ruby-on-rails - 子类化 Controller ,以及何时调用 super

转载 作者:数据小太阳 更新时间:2023-10-29 07:53:50 25 4
gpt4 key购买 nike

我有很多 Controller 会有一些类似的行为,例如用户应该登录,需要设置一些范围,需要设置 current_account/current_user 并缓存权限。

我正在考虑使用标准 Controller 并将其子类化。

class MyStandardController < ApplicationController
before_filter :xyz
end

class SomeController < MyStandardController
end

我想知道我是否需要/何时调用 super

最佳答案

您不需要在继承自另一个 Controller 的 Controller 中调用 super;事实上,这样做可能有点奇怪。 Super 从父类(super class)中执行一个同名的方法,您可能不会在 MyStandardController 上拥有任何您将在其子类中重新定义的方法。

这样做的主要原因,正如您自己所说,是为了让过滤器和方法轻松地跨 Controller 命名空间。我们在我们的应用程序中做了类似的事情,其中​​具有非常相似行为的网站区域将从 Controller (如 ShoppingController)继承,该 Controller 具有一段私有(private)的便捷方法,只能在其所有子项中使用。

但是,现实地说,拥有实现所需功能的模块并将它们包含在所需的 Controller 中可能会更好。最终您可能需要从一个 Controller 到另一个 Controller 的某些东西,使用模块比使用复杂的继承层次结构更容易做到这一点。

关于ruby-on-rails - 子类化 Controller ,以及何时调用 super,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9807172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com