ruby-on-rails - Rails ActiveRecord - 从没有表的基类继承

标签 ruby-on-rails activerecord

我想做的是为我的一些模型创建一个基类,这些模型具有一些默认的 activerecord 行为:

class Option < ActiveRecord::Base
  has_many :products

  def some_method
    #stuff
  end

  #etc..etc..
end

class ColorOption < Option
  #stuff...
end


class FabricOption < Option
  #stuff...
end

但是,我希望 ColorOption 和 FabricOption 都在他们自己的表中。我不想使用 STI 或有一个基类“选项”的表。我让它工作的唯一方法是使用一些非继承元编程魔法。但我想知道是否有办法告诉 AR 基类不需要表。它只是为了额外的行为,并像往常一样将其他子类放在他们自己的表中。

谢谢,
克雷格

最佳答案

你想要的是一个抽象类:

class Option < ActiveRecord::Base
  self.abstract_class = true
end

class ColorOption < Option
  ...
end

class FabricOption < Option
  ...
end

关于ruby-on-rails - Rails ActiveRecord - 从没有表的基类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3532985/

相关文章:

ruby-on-rails - 获取带有空格分隔符的字符串列表的最有效方法

mysql - 将 MySQL "get top y for each n"GROUP BY 查询转换为 PostgreSQL

ruby-on-rails - Rails 3 中的多对多关系

ruby-on-rails - 自动生成编辑、索引、新建、_form 等

php - 如何减少获得此结果所需的查询数量

zend-framework - DataMapper 模式会破坏 MVC 吗?

mysql - NoClassDefFound错误: CompanionConversion in scala activerecord

ruby-on-rails - 未定义方法 `updated?' 用于 HasOneAssociation ,用于 Rails 4 中的嵌套属性

ruby-on-rails - 有_许多 :through without a join table

ruby-on-rails - 如何向包含生成的 JOIN 添加附加条件?