Ruby on rails 在rails中使用关注点和模块有什么区别?

Ruby on rails 在rails中使用关注点和模块有什么区别?,ruby-on-rails,activesupport-concern,Ruby On Rails,Activesupport Concern,刚才我开始在rails中使用关注点,但我怀疑我们为什么要使用关注点,因为我们可以在模块和混合概念上实现同样的功能。因此,请告诉任何人shat是使用关注点而不是使用模块。ActiveSupport::Concern为您的模块添加了一些方便的功能(即class\u方法)。您可以使用“纯”ruby模块,而无需扩展它。实际上,您创建了一个模块,并将其混入到一个类中。不管此模块是否扩展为::Concern,机制都是相同的。当您编写Concern时,这意味着您正在制作一个模块。我的观点是关注和模块是相似的。

刚才我开始在rails中使用关注点,但我怀疑我们为什么要使用关注点,因为我们可以在模块和混合概念上实现同样的功能。因此,请告诉任何人shat是使用关注点而不是使用模块。

ActiveSupport::Concern
为您的模块添加了一些方便的功能(即
class\u方法
)。您可以使用“纯”ruby模块,而无需扩展它。实际上,您创建了一个模块,并将其混入到一个类中。不管此模块是否扩展为::Concern,机制都是相同的。

当您编写Concern时,这意味着您正在制作一个模块。我的观点是关注和模块是相似的。关注点可以作为模型、控制器出现在某处,在这里您可以自己编写模块。并与通用模块一起写入lib文件夹。这两种方法都可以通过包含或扩展到类中的方式使用。

这里有详细的描述:

简言之:

  • 关注点允许您使用
    #included
    #class_方法
    而不是
    self.included
    与其他模块
    类方法
    创建挂钩

  • 关注点使您能够更好地解决相互包含的模块之间的依赖关系


查看文档中提到的依赖项解决方案。