Как реализован Ruby on rails has_many (и аналогичный)?

Я анализирую исходный код rails, потому что мне хотелось бы понять внутреннюю работу has_many и подобных

Пока мне удалось найти, где реализован метод ( ссылка на github ): он находится в модуле ActiveRecord :: Associations

def has_many(name, options = {}, &extension)
  Builder::HasMany.build(self, name, options, &extension)
end

На этом, в конце концов, заканчивается ( ссылка на github ) в классе ActiveRecord :: Associations :: Builder :: CollectionAssociation as

def self.build(model, name, options, &extension)
  new(model, name, options, &extension).build
end

Вот где заканчиваются мои навыки работы с рубином, и я не мог отслеживать его дальше и найти, где «новое» реализовано и что оно делает .

Может ли кто-нибудь указать мне правильное направление и, возможно, прокомментировать, что происходит под капотом?

5
задан Mogsdad 31 August 2015 в 20:06
поделиться