Ruby on rails 如何在rails 4中正确实现三向多对多关系?
我使用的是rails 4,我有一个可能的三方多对多关系情况,看起来是这样的:要注册销售,我需要一个客户和一个产品,以及它的数量。当我因为另一个表分期付款而需要一个固定的销售id时,会出现三种情况,每个分期付款都有到期日期和价值,并检查是否已付款 我对它们之间的关系有点困惑,但我做了类似的事情(我在这里称中间表为SCP,sale\u client\u product):Ruby on rails 如何在rails 4中正确实现三向多对多关系?,ruby-on-rails,forms,many-to-many,Ruby On Rails,Forms,Many To Many,我使用的是rails 4,我有一个可能的三方多对多关系情况,看起来是这样的:要注册销售,我需要一个客户和一个产品,以及它的数量。当我因为另一个表分期付款而需要一个固定的销售id时,会出现三种情况,每个分期付款都有到期日期和价值,并检查是否已付款 我对它们之间的关系有点困惑,但我做了类似的事情(我在这里称中间表为SCP,sale\u client\u product): class客户端
class客户端
我想知道这是正确的还是有更好的方法。在实际保存时,我也处于困境中,因为对于任何一次销售,我可能必须用一个表单保存多个SCP实例。如果您想在单个文档中保存
产品
,客户
,销售
,分期付款
信息,也许您可以使用发票
在商业中,如果公司想向客户要钱,他会定期向客户发送一封电子邮件,其中包括以下所有信息:
- 每件产品的详细信息、名称、数量、价格
- 客户详细信息、姓名、地址、电话号码
- 销售明细、总价、销售日期或分期付款到期日、分期付款金额
付款
将是您需要与发票
进行对账的内容,以便您能够了解哪些发票
(以及因此而支付的分期付款
)
Class Payment
belongs_to :invoice
end
当您执行@invoice.payment
时,您将获得该发票的付款(属于:分期付款
),如果@invoice.payment
为零
,则分期付款未支付
如果您想注册付款
它应该有一张现有的发票
@payment = Payment.new(payment_params)
@payment.invoice_id = @invoice.id
@payment.save
这就是我在会计领域工作时注册会计事务的方式。请随意改进你的应用程序,也许将来我们可以编辑这篇文章进行改进
一个可能的改进可能是保护它,所以你要弄明白 谢谢你的帮助。我仍然需要更好地理解多态关联,因为我不知道它到底是如何工作的,我会在它开始工作后再给你回复,这样我就明白了,你把这个发票当作一个包,包括特定销售的所有产品和客户?我很难理解您的示例的实现,因为我不知道什么是代码方面的。@onildo您是对的。我的解决方案不完整,所以我完全重写了它。请看一看。谢谢
Class Payment
belongs_to :invoice
end
@payment = Payment.new(payment_params)
@payment.invoice_id = @invoice.id
@payment.save