刚才我开始在 Rails 中使用 Concerns,但我怀疑我们为什么要关注,因为我们可以在模块和混合概念上实现相同的目标。所以请任何人告诉我们shat是使用关注点而不是使用模块。
问问题
13421 次
3 回答
16
这里有很好的描述:http: //api.rubyonrails.org/classes/ActiveSupport/Concern.html
简而言之:
关注点允许您使用
#included
and#class_methods
而不是self.included
hook 来ClassMethods
创建额外的模块;关注点为您提供了更好的相互包含的模块的依赖解决方案;
于 2017-10-11T10:58:58.630 回答
7
ActiveSupport::Concern
class_methods
为您的模块添加一些方便的功能(即)。您可以使用“纯”ruby 模块而不扩展它。本质上,您创建了一个模块,并将其混入到一个类中。这个模块是否扩展 AS::Concern 没关系,机制是一样的。
于 2015-12-16T09:14:17.273 回答
2
当您写下关注时,这意味着您正在制作一个模块。我的意见是关注和模块是相似的。关注点可以作为模型、控制器出现在某个地方,您可以在这里为自己编写模块。通用模块写在 lib 文件夹中。两者都可以通过包含或扩展到类中来使用。
于 2015-12-16T09:18:42.030 回答