Ruby on rails 在活动记录中表示参考数据的最佳方法

Ruby on rails 在活动记录中表示参考数据的最佳方法,ruby-on-rails,activerecord,data-modeling,Ruby On Rails,Activerecord,Data Modeling,假设我有一个产品,可以有任何数量的属性。。。这些属性仅限于特定的选项。产品可以有(每个选项下面的有效选项): 颜色 红色的 蓝色的 绿色的 类别 运动 正式的 孩子们 防水的 对 没有 这个名单还可以继续下去。在活动记录中是否有用一个表来表示这一点?我认为最好有一个单一的参考数据表,看起来像: create_table :attritubes do |t| t.string :name # Red, Blue, Green, Sports, Formal... t.str

假设我有一个产品,可以有任何数量的属性。。。这些属性仅限于特定的选项。产品可以有(每个选项下面的有效选项):

  • 颜色
    • 红色的
    • 蓝色的
    • 绿色的
  • 类别
    • 运动
    • 正式的
    • 孩子们
  • 防水的
    • 没有
这个名单还可以继续下去。在活动记录中是否有用一个表来表示这一点?我认为最好有一个单一的参考数据表,看起来像:

create_table :attritubes do |t|
  t.string :name # Red, Blue, Green, Sports, Formal...
  t.string :field_type # Color, Category, Waterproof...
end
每个属性都有一个模型似乎是一种浪费,因为它实际上做的不多。在这种情况下,我有一个名为Attribute的通用模型,而产品有很多属性?或者active record是否有办法通过列(构成此语法)来区分属性:


输入之后,它看起来就像一个范围。。。这是更好的方法吗?

您可以为以下属性创建一个表

create_table :attritubes do |t|
  t.string :color 
  t.string :category 
  t.boolean :waterproof
end
&然后在枚举中获取数据,如

enum color: { red:0, blue:1, green:2 }
enum category: { sports:0, formals:1, kids:2 }
enum waterproof: { no:0, yes:1 }

可以为以下属性创建单个表:

create_table :attritubes do |t|
  t.string :color 
  t.string :category 
  t.boolean :waterproof
end
&然后在枚举中获取数据,如

enum color: { red:0, blue:1, green:2 }
enum category: { sports:0, formals:1, kids:2 }
enum waterproof: { no:0, yes:1 }

使用多态关联如何?我不能完全指出确切的模型关系,但是那里的“\u type”字段似乎是用例的有力指示器。使用多态关联如何?我不能完全指出确切的模型关系,但是那里的“_type”字段似乎是用例的有力指示器。