私はMongoid、Rails、Fabricationsを使用していますが、これがどのように行われているのかまったくわかりません。どんな考えでも非常にありがたいです、しかし私はこれがかなり複雑であることを知っています。ユーザーを作成し、4つのグループに参加したいのですが、8つがロードされ続けています。
これが私のコードの関連セクションです
@ user1 = Fabricate.build(:registered)
@ user1.joined_groups << [common_group、 cali_group、 ca46、 Fabricate(:polco_group、{:name => "Gang of 13"、:type =>:custom})]
実行する@user1.joined_groups.size
と4が得られますが、実行すると@user1.joined_groups.map(&:name)
8つのレコードが得られます。
#<PolcoGroup _id:1 ... member_ids:[]、follower_ids:[]> #<PolcoGroup _id:1 ... member_ids:[]、follower_ids:[]> #<PolcoGroup _id:1 ... member_ids:[]、follower_ids:[]> #<PolcoGroup _id:1 ... member_ids:[]、follower_ids:[]> #<PolcoGroup _id:1 ... member_ids:[1、1、1、1、1、1、1、1、1、1、1、1、1、1]、follower_ids:[1、1] >> #<PolcoGroup _id:1 ... member_ids:[1、1、1、1、1、1、1、1、1、1、1、1、1、1]、follower_ids:[1、1] >> #<PolcoGroup _id:1 ... member_ids:[1、1、1、1、1、1、1、1、1、1、1、1、1、1]、follower_ids:[1、1] >> #<PolcoGroup _id:1 ... member_ids:[1、1、1、1、1、1、1、1、1、1、1、1、1、1]、follower_ids:[1、1] >>
(ここで、すべてのBSON :: ObjectId( '4eab3ca5f11aac2701000009')ステートメントをステートメントに置き換え、多くの中間コードを削除しました。
コードの完全なセットは、https ://gist.github.com/1323984で入手できます。
ほとんどの奇妙な単にマップを呼び出すことが問題を引き起こしている可能性があります。
「これらのグループで作成されたばかりのユーザー」を配置します。 @ user1.joined_groups.map(&:name)を置きます 「次に」を置く @ user1.joined_groups.map(&:name)を置きます
これを生成します(!):
これらのグループで作成されたばかりのユーザー: ダン・コール CA CA46 13のギャング 次に第二に ダン・コール CA CA46 13のギャング ダン・コール CA CA46 13のギャング
洞察をありがとう!何度も試みた後、ターミナルでこれを複製する方法がわからないので、Fabricationgemを疑っています。(更新:いいえ、標準のMongoidオブジェクトでこのエラーが発生するため、Mongoidを完全に非難しています。)
ティム