Предположим приложение, где пользователи могут давать подарки другим пользователям. Между даром и пользователем есть две связи (одна как отправитель, а другая - как получатель).Mongoid has_many Отношение return no values
Часть приемника, кажется, не будет работать в соответствии со следующим кодом, где создается подарок, но не извлекается при вызове ассоциации:
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?
Вы sould набор gifts_sent как attr_accessible, метод создания использует массовое присвоение. – drinor