7

私はトランザクションクラスを持っています。このクラスの各オブジェクトには、1 つの発行アカウント、1 つの送信アカウント、および 1 つの受信アカウントが含まれます。これらはそれぞれ Account クラスのインスタンスです。私のトランザクション テーブルには、issuer_id、sender_id、および receiver_id があります。

呼び出すことができるように、トランザクションとアカウントの間の関係をどのように指定する必要がありますか

transaction.issuer
transaction.sender
transaction.receiver

ありがとうございました。

4

1 に答える 1

16

:class_nameアソシエーション名から推測できない場合に、クラス名を指定するために使用します。

class Transaction
  belongs_to :issuer,   :class_name => 'Account'
  belongs_to :sender,   :class_name => 'Account'
  belongs_to :receiver, :class_name => 'Account'
end

class Account
  has_many :issued_transactions,   :foreign_key => :issuer,   :class_name => 'Transaction'
  has_many :sent_transactions,     :foreign_key => :sender,   :class_name => 'Transaction'
  has_many :received_transactions, :foreign_key => :receiver, :class_name => 'Transaction'
end

詳細については、ドキュメントを参照してください。

于 2011-09-14T02:32:03.730 に答える