私は、プレーヤーが会社の株式を購入できるアプリを開発しています。特定の会社で最も多くの株式を所有しているプレーヤーが大統領です。 私はcheck_presidentメソッドを持つ会社のモデルを持っています。このメソッドは、株式が売買されるたびに呼び出されます。 私は所有者を持つ在庫モデルを持っています。在庫の所有者はowner_id外部キーを介して保管されます。だから、すべての株式のために、独自の所有者と別のレコードがあります。 社長を確認する最善の方法は何ですか?どのような外部キーが最も見つかったかを確認する方法は?
このような何か:
def check_president
player_owned_stocks = ownstocks.where(ownable_type: "Player")
if(player_owned_stocks != nil)
*** find player with most stocks, if tied presidency should not change ***
president_id = player with most stocks
else
president_id = nil
end
end
在庫表を行い、あなたのpresident_idのですか?また、「各株には所有者とは別の記録があります」と、株価表の株式には、購入した株式の量が記載されていますか? –
株価表は実際には株価を発行した会社であるcompany_idと、所有者や会社、あるいは他のオブジェクトによっても株式を購入/所有することができるため、ownable_typeとownable_idを使用した多相関係を持っています。在庫表には何もありません。各レコードは1株のみを表します。 – Mischa