私はmongoDBの新機能を使用しています。私が取り組んでいる新しいレールプロジェクトに使用しています。 私が今やりたかったのは、(埋め込まれた)ドキュメントが別のコレクションを参照していて、異なる役割を持っていることでした。mongoid、ロールを使って参照を作成する
どういうわけか、これはうまくいかないようです。私は、外部のコレクションから埋め込まれたコレクションへの関係を定義することはできないことを知っています。だから、私の場合、ユーザーからLocationsにアクセスすることはできません。それでも、場所に新しい場所を追加しようとすると、エラーメッセージが表示されるため、referenced_in :location
部分を定義する必要があります。
これは単なる序文です。私の実際の問題は、これらの役割のことは動作していないようです。そのような新しい場所を場所locations.create(:user_a => some_user)
に作成すると、user_b
もそのユーザーに設定されます。
これを動作させる方法はありますか?または私は何か間違っているのですか?
私はあなたが(参照がreferenced_in側に保存されているため)2つの場所の関連付けを明確に持っていると思うclass Place
include Mongoid::Document
embeds_many :locations
end
class Location
include Mongoid::Document
embedded_in :place, :inverse_of => :locations
references_one :user_a, :class_name => "User" #, :stored_as => :array
references_one :user_b, :class_name => "User" #, :stored_as => :array
end
class User
include Mongoid::Document
referenced_in :location, :inverse_of => :dropper
referenced_in :location, :inverse_of => :picker
end
mongoidバージョンを使用していますか? – shingara
sry、完全に忘れてしまった:mongoid 2.0.0.beta20 on rail 3.0.3 – Dennis