Co odwrotność oznacza w mongoid?
Co inverse_of
oznacza w mongoid skojarzenia? Co mogę uzyskać, używając go zamiast tylko skojarzenia bez niego?
1 answers
W prostej relacji dwa modele mogą być powiązane tylko w jeden sposób, a nazwa relacji jest automatycznie nazwą modelu, z którym jest powiązana. W większości przypadków jest to w porządku, ale nie zawsze wystarcza.
inverse_of
pozwala określić relację, do której się odnosisz. Jest to pomocne w przypadkach, w których chcesz używać niestandardowych nazw dla swoich relacji. Na przykład:
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
W tym przykładzie użytkownicy mogą żądać i być przypisani do biletów. W celu reprezentowania tych dwie różne relacje, musimy zdefiniować dwie relacje do tego samego modelu, ale o różnych nazwach. Użycie inverse_of
pozwala Mongoidowi wiedzieć, że " requests "idzie z" requester", a" assigns "z" workerem."Przewaga jest tutaj dwojaka, możemy używać znaczących nazw dla naszej relacji i możemy mieć dwa modele powiązane na wiele sposobów. Więcej szczegółowych informacji można znaleźć w dokumentacji relacji Mongoid.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-30 22:26:58