gpt4 book ai didi

ruby-on-rails - Rails STI 覆盖所有子类的父类中的模型名称

转载 作者:行者123 更新时间:2023-12-05 00:22:43 24 4
gpt4 key购买 nike

我在 Rails 应用程序中使用 STI,为了不必为所有子类定义路由,我将以下内容放在每个子类中:

def self.model_name
Mapping.model_name
end

在上面的例子中, Mapping是父模型名称。例子:
class UserMapping < Mapping; end

必须把它放在每个子类中并不是很枯燥,所以我正在寻找一种方法来以某种方式在父类中设置它,以便从父类继承的每个类自动将模型名称设置为父模型名称。

也许有更好的方法来克服与设置 model_name 无关的 STI 引起的路由问题。 - 我愿意接受建议!

提前致谢!

最佳答案

将此放入您的 Mapping类(class):

class Mapping < ActiveRecord::Base
def self.inherited(subclass)
super
def subclass.model_name
superclass.model_name
end
end
end

之后, Mapping的所有子类还将继承父级的 model_name .

关于ruby-on-rails - Rails STI 覆盖所有子类的父类中的模型名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29527156/

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