【发布时间】:2022-08-19 00:45:40
【问题描述】:
我正在使用 2 个模型(Partner 和 Package)在 rails 7 上工作,我想将包裹分配给合作伙伴,但它们需要与订单一起分配。
例如,如果我将 package#A 和 package#B 分别分配给第 1 和第 2 订单的合作伙伴,则 package#A 将被视为小包,而 package#B 将被视为中包。
所以,我创建了PartnerPackage 将它们链接在一起(与has_many through:),还添加了package_order 列来包含包裹的订单。
问题
检索属于特定合作伙伴以及package_order 的所有包的最佳方法是什么?非常感谢您的回答!
合作伙伴.rb
class Partner < ApplicationRecord
has_many :partner_packages, dependent: :destroy
has_many :packages, through: :partner_packages
end
包.rb
class Package < ApplicationRecord
has_many :partner_packages, dependent: :destroy
has_many :packages, through: :partner_packages
end
合作伙伴包.rb
class PartnerPackage < ApplicationRecord
belongs_to :partner
belongs_to :package
validates :package_order, presence: true
end
-
Partner.find(1).join(:packages)应该给你一些可以使用的东西。
标签: ruby-on-rails