У меня есть модель User и модель Tracker.
. Цель состоит в том, чтобы пользователь имел: - один трекер, созданный этим пользователем - один трекер реферера для пользователя
Вкл.С другой стороны, каждый трекер: - принадлежит одному пользователю, тому, кто его создал - имеет много пользовательских рефери (которые когда-либо использовали этот трекер в качестве реферера)
Поэтому я построил свою модель следующим образом:
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: неопределенный метод `records 'для #
У меня заканчиваются идеи, чтобы попробовать ... Я использую RoR 3.03 и Mongoid 2.0.0.7
Спасибо,
Алекс