gpt4 book ai didi

ruby-on-rails - Rails 模型和 ActiveRecord 中的子类化

转载 作者:行者123 更新时间:2023-12-03 22:39:56 25 4
gpt4 key购买 nike

我正在编写一个电子商务类型的网络应用程序(不完全是,但给你一个想法)。我将展示彼此之间几乎没有关系的不同类型的产品,但我希望有一个 Product 父类,以便对所有子类有一个共同的 View ,并共享一些字段和行为。

但这给我带来了很多问题,特别是关于 ActiveModel:产品不应该有自己的表,但我希望它的子类(酒店、餐厅等)中的某些字段从它继承这些字段。我该怎么做?

拥有 Product 父类的另一个原因是,最终我将需要使用 Product.all 和类对象的不同范围。

也许我完全被误导了,所以请随意提出任何方法来做到这一点。也许使用模块?

最佳答案

首先,继承意味着字段被继承;因此,您不仅可以获取一些字段,还可以获取子类中父类的所有字段。

您可以通过多种方式实现您想要的:

  • 创建一个模块并将所有共享方法放入其中,并将其包含在每个模型中
  • 在子类中使用set_table_name 路由模型以使用另一个表。如果您有多个表与 product 表共享相同的字段,这将很有用。
  • 如果您的模型共享同一个表,但通过诸如 product_type 之类的属性来区分,您可以使用 default_scope 始终应用诸如 之类的条件>default_scope where(:product_type => :hotel)

使用 API作为上述方法使用的引用。

关于ruby-on-rails - Rails 模型和 ActiveRecord 中的子类化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7901579/

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