Co odwrotność oznacza w mongoid?

Co inverse_of oznacza w mongoid skojarzenia? Co mogę uzyskać, używając go zamiast tylko skojarzenia bez niego?

Author: freemanoid, 2013-03-06

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.

 39
Author: XanderStrike,
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