У меня есть два класса с отношением 1-n. Как так:Настроить отношение Mongoid для возврата отсортированных объектов
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
Теперь, когда я называю band.members
я получаю объекты члена. Я хочу, чтобы, если я позвоню band.members.last
, чтобы получить участника, который присоединился к последнему. Достичь этого путем определения метода <=>
для Member
и сортировки на основе joined
:
band.members.sort.last
Как я могу сделать это поведение по умолчанию? Я не хочу избегать дополнительного вызова для сортировки. Возможно ли это, и если да, то как?
«Я не хочу, чтобы избежать дополнительного вызова для сортировки»? Я не следую. Почему бы просто не добавить метод, который делает то, что вы хотите, с явным именем метода? – WiredPrairie
@WiredPrairie Это мое текущее решение. У меня есть метод 'latest_band_member', который выполняет' band.members.sort.last'. Я задавался вопросом, может ли это быть автоматизировано через Mongoid DSL. –