使用单表继承时的Acttiverecord inverse_of

时间:2018-02-26 15:36:35

标签: ruby-on-rails associations single-table-inheritance

我的系统帐户可以有多种不同类型的订单(SalesOrderPurchaseOrderSalesInvoicePurchaseInvoice等等。

我使用单表继承,它工作得非常好,甚至可以达到控制器和视图的水平。

但是如何在关联上声明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,它根据所使用的子类返回正确的值吗?

0 个答案:

没有答案