tengo el siguiente código en el modelo rieles empresa: Modelocómo hacer que la relación funcione has_and_belongs_to_many en MongoId
class Company
include Mongoid::Document
include Mongoid::Timestamps
field :name, type: String
...
has_and_belongs_to_many :users
end
usuario:
class User
include Mongoid::Document
include Mongoid::Timestamps
include ActiveModel::SecurePassword
field :email, type: String
...
has_and_belongs_to_many :companies
end
hay un registro de la empresa en la base de datos, y una registro de usuario y están asociados. Por alguna razón, el código siguiente no funciona:
c = Company.first
c.users # returns empty array
Del mismo modo, el código followign no funciona:
u = User.first
u.companies
Pero el siguiente código hace el trabajo:
c = Company.first
user = User.find c.user_ids.first
y la El siguiente código también funciona:
u = User.first
company = Company.find u.company_ids.first
así que si intento acceder a los usuarios de los usuarios de la compañía, no funciona, pero la matriz user_ids tiene una lista de identificadores de usuario, y cuando intento acceder a los usuarios de esta lista, funciona. ¿Cómo puedo solucionar este problema?
estoy usando los carriles 3.2.5 y MongoId 3.0.0.rc
Me di cuenta de que cuando creaba la asociación por 'user.companies << company', obtenía' user.companies' como se esperaba, pero 'company.users' funcionaba de manera diferente, devolviendo una consulta. Pude ver esa matriz llamando a 'company.users.all.to_a'. Después de que llamé a 'company.users << user2' esto realmente parecía interferir con las asociaciones. – Baruch
Muy tarde para el espectáculo. Esta solución lo hizo por mí: http://stackoverflow.com/questions/7308539/mongoid-has-and-belongs-to-many-associations/36282420#36282420 –