ActiveRecord如何不要求将数据库连接传递给finder方法?

Cha*_*son 1 activerecord dependency-injection ruby-on-rails

当我在模型上调用find()方法时(MyModel.find(:all,:conditions =>'...')),我不必将数据库连接作为参数传递.

这是如何运作的?Rails使用什么技术来实现这一目标?它是否使用依赖注入?

tam*_*ama 8

数据库连接在database.yml中定义.在启动期间--Rails将连接传递给ActiveRecord :: Base.由于所有模型都继承自ActiveRecord :: Base,因此它们"了解"要使用的连接.

请查看http://api.rubyonrails.org/classes/ActiveRecord/Base.html