在我正在处理的一个 Ruby 项目中,我将 ActiveRecord 风格的 MVC 功能添加到具有类似于以下混合架构的模型类中:
module Model
# Classes that mixin this module gain ActiveRecord-style class methods
# like Model.all, Model.first, Model.last et al.
#
# Throughout this module, @@database_bridge will contain a reference to a
# database ORM bridge, that does the dirty implementation of these methods.
def all
# Implementation stuff here, using @@database_bridge as appropriate
end
def first
...
end
# et al
end
class ExampleModel
extend Model
# Model-specific implementation goes here...
end
调用e = ExampleModel.first
会将ExampleModel
数据库中的第一个分配给e
.
我想@@database_bridge
在运行时使用依赖注入进行设置,这样每个包含的类都extend Model
使用相同的指定 ORM 对象。
我怎样才能做到这一点?
如果我可以编写某种辅助方法来按需设置该类变量,那就太好了。