J'ai deux classes avec une relation 1-n. Comme si:Configurer la relation Mongoid avec les objets de retour triés
class Band
include Mongoid::Document
has_many :members
end
class Member
include Mongoid::Document
field :name, type: String
field :joined, type: Date
belongs_to :band
end
Maintenant, quand j'appelle band.members
, j'obtiens les objets membres. Ce que je veux, c'est que si j'appelle band.members.last
pour obtenir le membre qui a rejoint le dernier. Je réalise cela en définissant la méthode <=>
pour Member
et trier en fonction de joined
:
band.members.sort.last
Comment puis-je faire de ce défaut de comportement? Je ne veux pas éviter l'appel supplémentaire pour trier. Est-ce possible et si oui, comment?
"Je ne veux pas éviter l'appel supplémentaire pour trier"? Je ne suis pas. Pourquoi ne pas simplement ajouter une méthode qui fait ce que vous voulez avec un nom de méthode clair? – WiredPrairie
@WiredPrairie C'est ma solution actuelle. J'ai une méthode 'latest_band_member' qui exécute' band.members.sort.last'. Je me demandais si cela peut être automatisé grâce à la DSL Mongoid. –