Ruby on rails Rails中是否存在依赖注入?

Ruby on rails Rails中是否存在依赖注入?,ruby-on-rails,ruby,spring,dependency-injection,Ruby On Rails,Ruby,Spring,Dependency Injection,Rails有MVC方法这一事实是否意味着它有依赖注入 还是有什么原因我们不讨论Rails中的依赖注入 如果Rails确实有依赖注入,它由什么组成?依赖注入在Ruby中通常是不必要的。Jamis Buck解释了原因。非常值得一读。依赖注入是一种范例,因此它存在于每种面向对象语言中 是否有用于Ruby的DI框架-请检查我想说,Ruby不需要这样的东西。。。但是如果你真的想,有些人已经这样做了。我在我的Web框架中使用这个IoC,大部分时间它都保持隐藏状态,并以静默方式解决依赖项和组件初始化问题,否则

Rails有MVC方法这一事实是否意味着它有依赖注入

还是有什么原因我们不讨论Rails中的依赖注入


如果Rails确实有依赖注入,它由什么组成?

依赖注入在Ruby中通常是不必要的。Jamis Buck解释了原因。非常值得一读。

依赖注入是一种范例,因此它存在于每种面向对象语言中


是否有用于Ruby的DI框架-请检查

我想说,Ruby不需要这样的东西。。。但是如果你真的想,有些人已经这样做了。

我在我的Web框架中使用这个IoC,大部分时间它都保持隐藏状态,并以静默方式解决依赖项和组件初始化问题,否则这些问题应该手动解决


你可以在这里看到它的实际应用(这个网站由我的web框架Rad提供支持)。

IoC是一个巨大的锤子,但在Ruby/Rails中,DI每天都在发生。无论何时,只要您这样做:

def initialize(model_klass)
  @model_klass = model_klass
end
这是迪。这个范例在Rails源代码的不同地方也被使用。例如,
Railties
gem本身主要是一个DI引擎。您可以插入您喜欢的ORM、各种插件配置和生成器

依赖注入有一个大而可怕的名字,但归根结底,它只是通过在运行时注入依赖来解耦类依赖


无论您使用哪种语言,只要您需要在某个地方插入行为/代码,您就可能正在使用它。

Jamis实际上是说,不需要经常与Java一起使用的重型DI框架。他没有说这在Ruby中是不必要的——相反,DI可以在Ruby中使用,以减少耦合并提高可测试性。这不是必要的。博客作者说他们每天都在使用DI,只是没有DI框架。那是一篇很棒的文章。必须为使用Ruby.downvoted的每个人阅读。依赖注入是ruby中的最佳实践。正如scottburton11所建议的那样,它允许更好的可测试性和解耦。我建议阅读Sandi Metz的著作,他被认为是这方面的专家。我很确定他所说的DI框架在ruby中是不必要的。这是一个很好的问题。我从阅读答案中学到了很多