我有一个名为Transaction
的ActiveRecord模型。
每个交易都有四个字段:
Transaction
还有另外两种类型:
对于每笔还款交易,在“父交易ID”字段中都会提及借方交易的交易ID。
使用ActiveRecord查询,我必须找到特定用户ID的未付款借记交易。
示例数据:
TransactionID Type of Transaction UserID Parent TransactionID
123 Debit 1 null
124 Debit 1 null
125 Credit 1 123
127 Debit 1 null
查询以上数据应返回交易:124, 127
。
答案 0 :(得分:0)
class Transaction < ApplicationRecord
has_one :payback_transaction, class_name: 'Transaction', foreign_key: :parent_transaction_id
belongs_to :debit_transaction, class_name: 'Transaction', foreign_key: :parent_transaction_id, optional: true
https://guides.rubyonrails.org/association_basics.html#self-joins
如果您希望每个借记卡有多个投资回报,则可能需要has_many
而不是has_one
。