使用问题与rails中的模块有什么区别?

Ram*_*mar 17 ruby-on-rails activesupport-concern

刚才我开始在rails中使用Concerns,但我怀疑为什么我们会关注,因为我们可以在模块和混合概念上实现相同的功能.所以请任何人告诉我关于使用关注而不是使用模块.

zin*_*yev 9

这里有很好的描述:http://api.rubyonrails.org/classes/ActiveSupport/Concern.html

简而言之:

  • 关注允许您使用#included#class_methods不是self.included与其他模块ClassMethods创建挂钩;

  • 对于相互包含的模块,关注点可以为您提供更好的依赖性解析;


Ole*_*yan 5

ActiveSupport::Concernclass_methods为您的模块添加了一些方便的功能(即)。您可以使用“纯”ruby 模块而无需扩展它。本质上,您创建了一个模块,并将其混合到一个类中。这个模块是否扩展 AS::Concern 没有关系,机制是一样的。