我正在编写一个应用程序,用户可以在其中跟踪哪些用户欠他钱(他的债务人)以及他欠哪些用户(他的债权人)。
这是我的债务模型:
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 = debts_id 的债务)和 User.credits(他的 id = creditor_id 的债务)。我希望能够找到用户的债务人(找到他的 id = 债权人 ID 的债务,并提取这些债务的所有债务人 ID)和用户的债权人(找到他的 id = 债务人 ID 的债务,并提取这些债务的所有债权人 ID债务)。