0

私は、ユーザーがお金を借りているユーザー (債務者) とお金を借りているユーザー (債権者) を追跡できるアプリを作成しています。

これは私の債務モデルです:

class Debt < ActiveRecord::Base
  attr_accessible :amount, :bill_id, :creditor_id, :debtor_id, :is_a_payment

  belongs_to :bill
  belongs_to :debtor,
    :class_name => "User",
    :foreign_key => :debtor_id

  belongs_to :creditor,
    :class_name => "User",
    :foreign_key => :creditor_id
end

これは私のユーザーモデルです:

class User < ActiveRecord::Base
  attr_accessible :password, :username, :email

  has_many :debts,
    :foreign_key => "debtor_id"

  has_many :debtors,
    :through => :debts,
    :source => :user

  has_many :credits, 
    :class_name => "Debt",
    :foreign_key => "creditor_id"
end

現在、User.debts (彼の id = debtor_id である負債) と User.credits (彼の id = creditor_id である負債) を取得できます。ユーザーの債務者 (id = creditor_id である債務を見つけ、それらの債務のすべての debtor_ids をプルアップ) とユーザーの債権者 (彼の id = creditor_id である債務を見つけ、それらのすべての creditor_ids をプルアップ) を見つけられるようにしたい債務)。

4

1 に答える 1

0

User クラスでは、2 つの別個の関係が必要です

has_many :debts, :foreign_key => "debtor_id"
has_many :loans, :foreign_key => "creditor_id"
于 2013-06-30T18:08:07.733 に答える