5

Railsの会社モデルに次のコードがあります。

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

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

ユーザーモデル:

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

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

データベースには会社レコードとユーザーレコードがあり、それらは関連付けられています。何らかの理由で、次のコードは機能しません。

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

同様に、次のコードは機能しません。

u = User.first
u.companies

ただし、次のコードは機能します。

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

次のコードも機能します。

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

したがって、company.usersからユーザーにアクセスしようとしても機能しませんが、user_ids配列にはユーザーIDのリストがあり、このリストからユーザーにアクセスしようとすると機能します。この問題を解決するにはどうすればよいですか?

Rails3.2.5とMongoid3.0.0.rcを使用しています

4

1 に答える 1

2

私はまったく同じ問題を抱えていました;) mongodbバージョン> 2.0.0を使用していることを確認してください。詳細については、http://mongoid.org/en/mongoid/docs/installation.html#installationを参照してください

于 2012-06-22T05:17:11.863 に答える