我的系统帐户可以有多种不同类型的订单(SalesOrder
,PurchaseOrder
,SalesInvoice
,PurchaseInvoice
等等。
我使用单表继承,它工作得非常好,甚至可以达到控制器和视图的水平。
但是如何在关联上声明inverse_of
。
在我的帐户中,每个声明都很容易
has_many sales_orders, inverse_of: :account
has_many purchase_orders, inverse_of: account
...
但是对于我所拥有的所有类型订单的基本模型"
belongs_to :account
我想添加inverse_of: xyz
根据模型动态计算xyz
。例如,对于SaleOrder
in,将为inverse_of: :sales_orders
。
但我想将代码保留在基本模型中。我不想进入SalesOrder并在那里写belongs_to :account, inverse_of: :sales_orders
。
我该怎么办?我可以在关联声明中使用lambda,它根据所使用的子类返回正确的值吗?