ruby on rails - rails - ¿Qué significa inverse_of en mongoid?
rails has_one through (1)
En una relación simple, dos modelos solo pueden relacionarse de una sola manera, y el nombre de la relación es automáticamente el nombre del modelo con el que está relacionado. Esto está bien en la mayoría de los casos, pero no siempre es suficiente.
inverse_of
permite especificar la relación a la que se refiere. Esto es útil en los casos en los que desea utilizar nombres personalizados para sus relaciones. Por ejemplo:
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
En este ejemplo, los usuarios pueden solicitar y ser asignados a tickets. Para representar estas dos relaciones distintas, necesitamos definir dos relaciones para el mismo modelo pero con nombres diferentes. El uso de inverse_of
permite a Mongoid saber que "solicitudes" va con "solicitante" y "asignaciones" va con "trabajador". La ventaja aquí es doble, podemos usar nombres significativos para nuestra relación, y podemos tener dos modelos relacionados de múltiples maneras. Consulte la documentación de relaciones de Mongoid para obtener información más detallada.
¿ inverse_of
significa inverso en las asociaciones mongoides? ¿Qué puedo obtener al usarlo en lugar de solo una asociación sin él?