В Rails я хочу переопределить поведение ассоциации.Например, по умолчанию, если Person has_many :hats
, при вызове some_person.hats
будет выполнено простое объединение с использованием person.id
и hat.person_id
.
. Я хочу изменить этот запрос, включив в него некоторые другие критерии.Например, возможно, коллекция шляп человека должна быть только шляпой, подходящей для его страны.
Кажется, я мог бы сделать что-то вроде этого:
class Person < ActiveRecord::Base
has_many :hats, :through => :country do
# John lives in Canada, so he gets a baseball cap and a hockey helmet
self.country.hats
end
end
МожетЯ контролирую, что ассоциация возвращает, как это?Если нет, то будет ли сфера лучшим решением?
Я знаю, что это глупый пример, но объяснение логики предметной области, для которой мне это нужно, было бы слишком скучным для всех здесь.:)