在 n..n 关联中加入两个模型时遇到问题。
我在上下文中有以下关联:
- 提案 n..n 产品
- 提案 n..n 项目
- 提案 n..n 新项目
与此类似,我有:
- 订购 n..n 产品
- 订购 n..n 项目
- 订购 n..n 新项目
好吧,连接模型在这两种情况下都具有相同的属性,但它们中的每一种的部分是不同的。
有没有办法做一个单一的连接模型(项目),它可以存储所有数据,但可以与订单和提案中的三个不同别名一起使用?
我试图像这样编码它,但没有工作..
提案.rb
class Proposal < ActiveRecord::Base
...
has_many :items
has_many :products, through: :items, source: :requisition, source_type: "Produto"
has_many :projects, through: :items, source: :requisition, source_type: "Projeto"
has_many :projects, through: :items, source: :requisition, source_type: "Novo"
...
end
订单.rb
class Order < ActiveRecord::Base
...
has_many :items, as: :requisition, dependent: :destroy
has_many :products, through: :items, source: :requisition, source_type: "Produtos"
has_many :projects, through: :items, source: :requisition, source_type: "Projetos"
has_many :projects, through: :items, source: :requisition, source_type: "Novos"
...
end
产品.rb
class Product < ActiveRecord::Base
has_many :items, as: :piece, dependent: :destroy
has_many :orders, through: :items, source: :piece, source_type: 'Order'
has_many :proposals, through: :items, source: :piece, source_type: 'Proposal'
...
end
项目.rb
class Project < ActiveRecord::Base
has_many :items, as: :piece, dependent: :destroy
has_many :orders, through: :items, source: :piece, source_type: 'Order'
has_many :proposals, through: :items, source: :piece, source_type: 'Proposal'
...
end
项目.rb
class Item < ApplicationRecord
belongs_to :piece, polymorphic: true
belongs_to :requisition, polymorphic: true
...
end
我希望统一这种关联,清除一些表格,并尝试加快应用程序的速度。