ruby-on-rails - 我如何扩展带有 rails 的模型?

标签 ruby-on-rails model-view-controller model

我想要一个通用产品模型,其中包含名称、描述、sku 编号等基本信息。我还想要另一个模型,它是一种特定类型的产品,本质上是对产品模型的扩展。例如:我想要一个具有颜色、尺码等附加列的服装模型。

实现这个的最佳实践是什么?我在考虑多态性或单表继承。也许我走错了路??

最佳答案

单表继承 ( documentation ) 是一种常见的方法。另一种是使用模块实现共享功能。

这里是一个使用模块的例子。

module Product
  def method_for_all_products
    # ...
  end
end

class Clothing < ActiveRecord::Base
  include Product

  def clothing_specific_method
    # ...
  end
end

class Furniture < ActiveRecord::Base
  include Product
end

关于ruby-on-rails - 我如何扩展带有 rails 的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9594747/

相关文章:

ruby-on-rails - 可排序表列在 MongoDB 中不起作用

ruby-on-rails - rails : Setting a position value in before_create

css - jstree 没有从 css url 加载 MVC5 中的图标

javascript - 如何在 Ember js 中获取 currentRouteName 的动态部分

mysql - 如何计算 Ruby on Rails 上的文本长度?

ruby-on-rails - 尝试升级 rails 并卡在 v2 上

javascript - 如何修复 "TypeError: Cannot set property ' 已批准“为空”?

javascript - Redux/React 和 MVC、OOP

python - 如何通过多对多字段的模型进行过滤?

django - 我需要什么样的模型和字段来处理诸如Apple的Autorenewable订阅之类的订阅?