ユーザーが他のユーザーにギフトを贈ることができるアプリを考えてみましょう。ギフトとユーザーの間には 2 つの関係があります (1 つは送信者として、もう 1 つは受信者として)。
レシーバー部分は、次のコードに従って動作していないようです。ギフトは作成されますが、関連付けを呼び出したときに取得されません。
require 'rubygems'
require 'mongoid'
Mongoid.load!("./config/mongoid.yml")
class User
include Mongoid::Document
has_many :gifts
has_many :gifts_sent, class_name: "Gift", as: :sender
end
class Gift
include Mongoid::Document
belongs_to :user, inverse_of: :gifts
belongs_to :sender, inverse_of: :gifts_sent, class_name: "User"
end
alice = User.create!
bob = User.create!
gift = Gift.create! sender: alice, user: bob
puts Gift.where(sender_id: alice.id).count # => 1 (nice)
puts alice.gifts_sent.count # => 0 (not so nice)
最後の行の出力を 1 にするために、関連付けをどのように定義する必要がありますか?