Как ActiveRecord не требует передачи соединения с базой данных в методы поиска? - PullRequest
1 голос
/ 27 июня 2011

Когда я вызываю метод find () для модели (MyModel.find (: all,: условие => '...')), мне не нужно передавать соединение с базой данных в качестве параметра.

Как это работает?Какую технику использует Rails, чтобы сделать это возможным?Используется ли внедрение зависимостей?

1 Ответ

8 голосов
/ 27 июня 2011

Соединение с базой данных определено в database.yml. Во время запуска Rails передает соединение ActiveRecord :: Base. Поскольку все модели наследуются от ActiveRecord :: Base, им становится «известно», какое соединение использовать.

Взгляните на http://api.rubyonrails.org/classes/ActiveRecord/Base.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...