我正在开发一个应用程序来跟踪产品设计,但我的联想遇到了一些麻烦。基本上我有一个模型(Assembly),它需要具有多态关联,但也需要能够属于自己。
为了说明,我有三个模型:Product、Assembly 和 Part。
- 一个产品可以有多个程序集。
- 一个装配可以有许多零件和装配。
- 一个程序集属于一个产品或一个程序集。
- 一个零件属于一个装配体。
我的模型定义目前是这样的:
产品.rb
class Product < ActiveRecord::Base
belongs_to :product_family
has_many :assemblies, as: :assemblable
end
程序集.rb
class Assembly < ActiveRecord::Base
belongs_to :assemblable, polymorphic: true
has_many :parts
has_many :subassemblies, as: :assemblable
end
部分.rb
class Part < ActiveRecord::Base
belongs_to :assembly
belongs_to :product_family
end
我想做的是,给定一个名为“top_assy”的程序集:
top_assy.subassemblies.create
但是,当我尝试这个时,我收到以下错误:
NameError: 未初始化的常量 Assembly::Subassembly
我显然在这里做错了什么 - 我错过了什么?我已经尝试将 'class_name: "Assembly"' 作为参数添加到 'has_many :subassemblies' 命令。
提前致谢!