inverse_of
モンゴイド連想ではどういう意味ですか? それなしの単なる関連付けの代わりに、それを使用することで何が得られますか?
7357 次
1 に答える
42
単純なリレーションでは、2 つのモデルを 1 つの方法でのみ関連付けることができ、リレーションの名前は自動的に、関連付けられているモデルの名前になります。ほとんどの場合、これで問題ありませんが、常に十分であるとは限りません。
inverse_of
参照している関係を指定できます。これは、リレーションにカスタム名を使用したい場合に役立ちます。例えば:
class User
include Mongoid::Document
has_many :requests, class_name: "Request", inverse_of: :requester
has_many :assignments, class_name: "Request", inverse_of: :worker
end
class Request
include Mongoid::Document
belongs_to :requester, class_name: "User", inverse_of: :requests
belongs_to :worker, class_name: "User", inverse_of: :assignments
end
この例では、ユーザーはチケットをリクエストすることも、チケットに割り当てることもできます。これら 2 つの異なる関係を表すには、同じモデルに対して異なる名前で 2 つの関係を定義する必要があります。Usinginverse_of
は、「リクエスト」が「リクエスタ」に対応し、「割り当て」が「ワーカー」に対応していることを Mongoid に知らせます。ここでの利点は 2 つあります。関係に意味のある名前を使用できることと、複数の方法で 2 つのモデルを関連付けることができます。詳細については、Mongoid Relationsのドキュメントを参照してください。
于 2013-05-30T22:26:58.243 に答える