5 votes

Comment faire fonctionner la relation has_and_belongs_to_many dans mongoid ?

J'ai le code suivant dans le modèle de société de rails :

class Company
  include Mongoid::Document
  include Mongoid::Timestamps

  field :name,      type: String
  ...
  has_and_belongs_to_many :users
end

Modèle d'utilisateur :

class User
  include Mongoid::Document
  include Mongoid::Timestamps
  include ActiveModel::SecurePassword

  field :email,           type: String
  ...
  has_and_belongs_to_many :companies
end

Il y a un enregistrement de société dans la base de données, et un enregistrement d'utilisateur et ils sont associés. Pour une raison quelconque, le code suivant ne fonctionne PAS :

c = Company.first
c.users # returns empty array

De même, le code suivant ne fonctionne pas :

u = User.first
u.companies

Mais le code suivant fonctionne :

c = Company.first
user = User.find c.user_ids.first

et le code suivant fonctionne également :

u = User.first
company = Company.find u.company_ids.first

Ainsi, si j'essaie d'accéder aux utilisateurs à partir de company.users, cela ne fonctionne pas, mais le tableau user_ids contient une liste d'identifiants d'utilisateurs, et lorsque j'essaie d'accéder aux utilisateurs à partir de cette liste, cela fonctionne. Comment puis-je résoudre ce problème ?

J'utilise rails 3.2.5 et mongoid 3.0.0.rc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X