【问题标题】:Rails 5: How to share a model partially by different entries of another model?Rails 5:如何通过另一个模型的不同条目部分共享模型?
【发布时间】:2018-06-10 14:49:28
【问题描述】:

我想为每个货币交易创建一个模型关联,如下所示。

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

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

然后,我想在各个帐户关联时扩展该基本模型。因此,上述列将在 Alpha 和 Beta 之间共享,而其他列,例如发布日期和 creditOrDebit(带有“in”或“out”的类型字符串)将有所不同。例如,如果账户 Alpha 向账户 Beta 转帐,则 creditOrDebit 列对于 Alpha 为“out”,对于 Beta 为“in”。

我考虑过多态关联,但它会创建一个完全不同的事务,应该在 Alpha 和 Beta 之间共享。

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

【问题讨论】:

    标签: model ruby-on-rails-5


    【解决方案1】:

    为什么不添加“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
    

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 2019-06-27
      • 2017-02-01
      • 2016-06-15
      • 1970-01-01
      • 2014-08-10
      • 2014-02-21
      • 2023-03-19
      相关资源
      最近更新 更多