Mehrdeutige Beziehung in Mongoid
Ich versuche, viewer_ids in einem Post-Modell zu haben, um user_ids zu speichern, und viewing_ids im User-Modell, um post_ids anzuzeigen, die angezeigt wurden. Die Sache beim Testen mit Rspec zum Hinzufügen / Löschen und Zugreifen auf die Beziehung von Benutzer funktioniert großartig. Aber wenn ich den Beitrag mit RABL ansehe - während Benutzerdaten eingebettet sind -, wird er verwirrt und gibt mir die Ambiguous Relationship.
#Post class
belongs_to :user
has_and_belongs_to_many :viewers, class_name: 'User', inverse_of: :viewed
#User class
has_many :users
has_and_belongs_to_many :viewed, class_name: 'Post', inverse_of: :viewers
Mongoid :: Errors :: AmbiguousRelationship in Posts # showProblem:
Ambiguous relations :posts, :viewed defined on User.
Summary:
When Mongoid attempts to set an inverse document of a relation in memory, it needs to know which relation it belongs to. When setting :user, Mongoid looked on the class Post for a matching relation, but multiples were found that could potentially match: :posts, :viewed.
Resolution:
On the :user relation on Post you must add an :inverse_of option to specify the exact relationship on User that is the opposite of :user.
Also, was ist das Problem, ich definiere beide Beziehungen und die Umkehrung von ihnen. Ist es nicht möglich, unterschiedliche Daten umgekehrt zu einer Relation zu haben?