Rails 5:如何通过另一个模型的不同条目部分共享模型?

时间:2017-12-30 14:29:48

标签: model ruby-on-rails-5

我想为每笔货币交易创建一个模型关联。

每个用户都有很多(钱)帐户。 每个帐户都有很多交易。 每个用户通过帐户进行多次交易。 对于每笔交易,它将属于两个账户(基本上很多账户之间的转账,如借方到贷方)。 基本上,我希望每个事务在两个具有不同值的帐户之间共享,仅用于某些事务列。

所以,我的目标是,对于每笔交易,都会有一个基本的交易信息(列),例如发生日期,金额,信息,来自,将与相应的两个账户共享(让它们成为账户Alpha)和帐户Beta)。

然后,我希望在各个帐户关联时扩展该基本模型。因此,上述列将在Alpha和Beta之间共享,而其他列(如发布日期和creditOrDebit(类型字符串为"在"或" out"))将不同。例如,如果帐户Alpha将资金转帐到帐户Beta,则creditOrDebit列将为" out"对于Alpha和"在"对于Beta。

我考虑了Polymorphic Association,但它会创建一个完全不同的交易,应该在Alpha和Beta之间共享。

Gist中的代码:https://gist.github.com/Penguinlay/151572404c14f566fe40a0cbb16e0339

1 个答案:

答案 0 :(得分:0)

为什么不添加" LineItem" (或类似的)模型。

您的交易has_many line_items和订单项可能类似于:" transaction_id,account_id,amount"金额为正(贷方)或负(借方)。

然后示例事务看起来像:

交易ID:42

Line_items(都有transaction_id:42)

acct_id  amount
   23      100
   17      -50
   42      -30
    7      -20