アカウントに属するクレジットを持っていますが、アカウント間でやり取りされています。クレジットが現在どのアカウントに属しているか、どのアカウントが最初にクレジットを作成したかを追跡できる必要があります。現在、私は次のような協会を持っています:
class Credit < ActiveRecord::Base
belongs_to :original_owner, :foreign_key => "account_id", :class_name => "Account"
belongs_to :account, :class_name => Account
end
Rails コンソールで、Credit.account.id = 3、Credit.original_owner.id = 4 を設定できますが、それは「アカウント ID」を変更するだけで、実際には関連付けを変更しません。Credit.account = Account.find(3) を設定すると機能しますが、Credit.original_owner を Account.find(4) に設定することはできません。正しく保存されたことを示していますが、そうではありません。Credit.account でのみ変更されます。アカウントを変更するたびに、original_owner も一緒に変更されます。
クレジットがアカウントに属し、元のアカウントを引き続き追跡できるように関連付けを設定するにはどうすればよいですか?