在Rails中是否存在dependency injection?

Rails是否具有MVC方法的事实意味着dependency injection?

还是有一个原因,我们不谈论在Rails的dependency injection?

如果Rails确实有dependency injection,它是由什么组成的?

Ruby的dependency injection通常是不必要的。 贾米斯·巴克广泛地讨论了为什么。 值得一读。

IoC是大锤子,但是DI每天都在Ruby / Rails中发生。 每当你这样做:

def initialize(model_klass) @model_klass = model_klass end 

这是DI。 Rails源代码中的这个范例也被用在各个地方。 例如, Railtiesgem本身主要是一个DI引擎。 你可以注入你喜欢的ORM,各种插件configuration和生成器。

dependency injection有一个大而可怕的名字,但它归结为只是通过在运行时注入依赖关系解耦类依赖关系。

使用什么语言并不重要,只要您需要在某处插入行为/代码,您可能正在使用它。

dependency injection是一个范例,所以它存在于每一种面向对象的语言中。

是否有Ruby的DI框架 – 检查这个问题

我会说,你不需要这样的事情与ruby…但如果你真的想,有些人有解决方法 。

我在我的Web框架中使用这个IoC https://github.com/alexeypetrushin/micon ,大部分时间它保持隐藏状态,静静地解决了依赖和组件初始化问题,否则应该手动解决。

你可以在http://ruby-lang.info (这个网站使用Rad,我的web框架https://github.com/alexeypetrushin/rad_core )在action中看到它。