0

私は Rails アプリを構築していますが、チームとユーザーの多対多の関係を実装するときに少し問題があります。これにより、ユーザーは複数のチームの一員になり、チームは明らかに複数のユーザーを持つことができます。それらは私の現在のモデルです:

class User
  include Mongoid::Document   
  has_and_belongs_to_many :teams, :class_name => 'Team', :inverse_of => :member
end

class Team
  include Mongoid::Document
  has_and_belongs_to_many :members, :class_name => 'User', :inverse_of => :teams
end

私が抱えている問題は、Rails コンソールでこれをテストすると、意味をなさないことです。

2.0.0-p0 :002 > u = User.first
 => #<User _id: 519c692e38508ce07e000001, team_ids: ["519c6f1338508c9431000001"]>
2.0.0-p0 :005 > t = u.teams.new
 => #<Team _id: 519c6fcd38508c08e0000001, member_ids: ["519c692e38508ce07e000001"]>
2.0.0-p0 :006 > u.teams
 => [#<Team _id: 519c6fcd38508c08e0000001, member_ids: ["519c692e38508ce07e000001"]>]
2.0.0-p0 :008 > t.members
 => []

チーム メンバーの関係ではユーザーが表示されないのに、配列にはその ID があるのはなぜですか? 私が使用したように、ユーザーオブジェクトが含まれている必要がありますu.teams.new。さまざまなことを試しましたが、すべて同様の結果が得られました (ユーザーがチームをリストしていないが、その ID が配列にあるなど)。どうすればこれを修正できますか? ありがとう!

PD: Edge Mongoid (git のマスターから)、Rails (4.0.0.rc1)、Ruby (2.0.0-p0) を実行しています。

4

1 に答える 1

0

これは実際には Mongoid の障害ではありません。これは、開発 VM に MongoDB 1.4 がインストールされていたためです (理由は聞かないでください。わかりません)。最新バージョンにアップグレードされ、今では完璧です!

于 2013-05-22T08:21:47.963 に答える