User モデルと Tracker モデルがあります
目標は、ユーザーに次のものを持たせることです: - このユーザーによって作成された 1 つのトラッカー - ユーザーへの 1 つのリファラー トラッカー
一方、各トラッカーは次のことを行います: - 1 人のユーザー、つまりそれを作成した 1 人のユーザーに属します。
そこで、次の方法でモデルを構築しました。
class User
.
.
references_one :referer_tracker, :class_name => "Tracker", :inverse_of => :referees
references_one :tracker, :class_name => "Tracker", :inverse_of => :owner
.
.
end
class Tracker
.
.
belongs_to :owner, :class_name => "User", :inverse_of => :tracker
has_many :referees, :class_name => "User", :inverse_of => :referer_tracker
.
.
end
User.tracker / Tracker.owner の関係は問題なく機能します。しかし、User.referer_tracket // Tracker.referees を動作させることができません。
コンソールで次のようにすると:
trackerX.referees << userX
trackerX.save
=> false because of invalid referees
もう一方の端で次のことをしようとすると: userX.referer_tracker = trackerX エラーが発生します: NoMethodError: undefined method `entries' for #
試すアイデアが不足しています... RoR 3.03 と Mongoid 2.0.0.rc.7 を実行しています
ありがとう、
アレックス