Rails部分背后的命名规则是什么?

时间:2014-05-19 21:02:45

标签: ruby-on-rails

一些Rails'部件以" Active":

开头
  • ActiveRecord的
  • 加载ActiveModel
  • 的ActiveSupport

还有一些Rails'部件以" Action":

开头
  • ActionPack的
  • 的ActionView
  • 的ActionMailer

为什么?为什么他们都没有相同的前缀?什么"活跃"和"行动"在这种情况下意味着什么?

DHH现在正在建设" ActiveJob",他怎么知道它是不是应该是" ActionJob"?

4 个答案:

答案 0 :(得分:19)

我看待它的方式,这只是我的观点(唯一可以给出确认答案的人是DHH:)),

当我看到Action*ActionPack ActionViewActionControllerActionPack)或ActionMailer的两个主要组成部分时,它们属于Action在Rails应用程序中执行操作,无论是控制器特定操作还是显示特定视图甚至是发送电子邮件。所以,Active*似乎是精确的前缀,因为这些包表示做某事。

当我看到ActiveRecord,如ActiveSupportActiveModel或{{1}}等时,它会以某种方式与您的Rails应用程序业务逻辑提供一些有用的功能。或ORM支持类似的附加组件,以方便Rails应用程序开发。

希望在这个问题上看到更多有趣的答案。这是我们可以开始分析的地方。

答案 1 :(得分:2)

Action *用于面向用户的东西(视图,控制器,邮件程序),Active *是支持Action *组件的后端组件

答案 2 :(得分:0)

ActiveRecord基于Martin Fowler创造的名为“Active Record”(wiki)的软件模式。

我知道这并不完全解释命名约定,但确实解释了名称的来源。

答案 3 :(得分:0)

看起来像:

Action:为控制器提供功能。

主动模型提供功能。

不过,我不太确定。