在rails中的位掩码字段上添加一对多关系

时间:2016-06-01 15:07:09

标签: ruby-on-rails ruby

我在模型中使用整数列作为位掩码来存储关于对象的不同潜在属性。我使用掩码是因为固定数量的类别永远不会改变,因此将其作为记录存储在数据库中是不准确的。但是,可能存在与类别相关的无限数量的子类别。我无法理解如何建立这种关联。

我们说我的产品型号有两种类型的成本类别,例如制造和安装。每个成本类别至少有一个子类别,这是进入制造,进入安装的内容。例如,制造可能包括购买特定零件,但这不是安装的一部分。问题是,如何在制造和子类别之间建立一对多的关系?

我已经设置了产品模型以使用这个gem的位掩码:https://github.com/joelmoss/bitmask_attributes

class Product < ActiveRecord::Base
  bitmask :cost_categories, as: [:manufacture, :installation]
end

class SubCategory < ActiveRecord::Base
  belongs_to ...
end

我可以轻松添加或检查类别,但我不知道如何将:manufacture:installation与单独的模型相关联。

我希望能够做到这样Product.first.cost_categories.first.subcategories

如何在不同的位掩码属性之间添加子类别关系?这可能吗?

0 个答案:

没有答案