我了解到关注文件夹基本上是我们的控制器和模型。另一方面,ApplicationController
也有同样的目的。
我们将模型/控制器之间的公共代码放在关注文件夹和应用程序控制器文件中也是如此。
然后它们之间有什么区别?
答案 0 :(得分:2)
对控制器的关注可能适用于两个或三个控制器,但您可能不希望它适用于所有控制器。这是conerns的一个很好的功能......你可以为需要它的控制器干掉代码,而无需将代码添加到不需要它的控制器。
应用程序控制器中的代码可在所有控制器中访问。
答案 1 :(得分:0)
Concerns
基本上是混合到控制器或模型类中的模块。 Concern
扩展ActiveSupport::Concern模块。它有助于减少模型/控制器类的范围,并且可以更轻松地跨多个模型/控制器类重用公共代码。担心就像帮助模块。我们可以在关注点中定义辅助方法,并且可以包含或扩展来自各种控制器/模型类的这些关注点,以共享和干掉模型/控制器代码。
另一方面,ApplicationController
是controller class
(不是module
),在你的Rails应用程序中,它是你所有其他控制器的base class
类派生自。 e.g。
class FooController < ApplicationController
. . .
end
class BarController < ApplicationController
. . .
end
在模型 - 视图 - 控制器(MVC)软件架构模式中,控制器实现业务逻辑,可以向模型发送命令以更新模型的状态。它还可以将命令发送到其关联的视图,以更改视图的模型表示。 ApplicationController
是那种Concerns
就像帮手完成工作一样。