Простите, если я неправильно понял мою терминологию;Я все еще новичок в Ruby и Rails.
В школе я работаю над проектом RoR как часть команды.Я занимался парным программированием с товарищем по команде, который действительно имеет опыт работы в RoR;и я написал что-то вроде следующего:
d = self.deliverables.find_all_by_lifecycle_id(self.lifecycle_id)
Мой партнер по программированию пар остановил меня на этом этапе и объяснил, что это не сработает, потому что find_all_by_lifecycle_id
может быть успешно разрешено только при вызове Deliverable
модель, которая наследуется от ActiveRecord::Base
(которая, в свою очередь, является классом, отвечающим за предоставление такой магической функциональности).Метод self.deliverables
возвращает массив , который не обладает такими же возможностями.Альтернативное решение, которое он предложил, состояло в том, чтобы использовать именованную область действия .
. Я запротестовал: "Но ... я почти уверен, что уже пробовал это уже ...и это сработало . "
Конечно же, оно действительно , кажется, работает, как мы обнаружили, когда мы проверяли это, просто чтобы меня развеселить.Чего не хватало моему товарищу по команде?У меня, конечно, нет опыта, чтобы понять, что могло быть не так в том, что он сказал (это имело смысл для меня).