确定控制器与模型逻辑的放置位置

时间:2014-02-01 01:05:49

标签: ruby-on-rails model-view-controller

我正试图找出在我的rails应用程序中做某事的最佳(或者说最实用/最有效)的方法。基本上我所拥有的是一个区域,用户必须在多个表单字段中输入一些信息,我目前有DB列(例如收入)。

根据从用户获得的信息,需要执行一些计算(例如:收入和rrsp贡献需要通过一个简单的公式来确定用户的大致应税收入)。

我的问题是,最佳做法是在模型级别的方法中执行所述计算,并将处理后的信息保存在自己的DB列中,或者我是否可以执行所述原始输入数据的计算。控制器级别,每次都需要处理?

我猜测通常最好将计算出的数据存储在数据库中,这样就不需要每次都进行处理,但我基本上都在寻找最佳实践。它可能还取决于我猜的应用程序特定要求。

1 个答案:

答案 0 :(得分:1)

我的偏好仅是存储原始(或轻度消毒)数据。然后根据整个项目的结构,将您需要的公式转换为模型中的方法,或者可能是库/辅助函数。

当您开始存储已处理的数据时,您需要开始担心源数据更改时的同步任务。这可能很麻烦而且很难。

由于计算机的算术运算速度很快,而对于依赖数据库的Web应用程序而言算术不太可能是您的性能瓶颈,我不担心性能开销。如果它成为瓶颈,我可能会开始考虑缓存层。