3

我正在为 Rails 应用程序创建“分析”页面。分析页面不保留它自己的任何数据(此时它非常原始),但确实利用了我从数据库中获取的指标(通过 ActiveRecord 中内置的聚合表达式)。除了收集和呈现指标之外,我唯一的其他要求是允许用户提供一个日期范围来过滤数据。到目前为止,我一直在使用实例变量等来存储指标信息......随着指标数量的增长以及管理开始和结束过滤日期的需要,我开始认为我应该将这些数据放入它的自己的模型。如果我确实移动了我所有的“数据” 进入模型我应该只使用带有 attr_accessors 的普通对象还是有更合适的基类可以用于非持久数据?我对 MVC 架构足够熟悉,知道我的控制器越来越臃肿,但对 rails 不够熟悉,无法确定在这种情况下我应该如何组织我的数据/逻辑。

任何见解将不胜感激!

4

3 回答 3

7

听起来您可以使用 Rails 非活动记录模型。有一个很好的 Railscast :

http://railscasts.com/episodes/121-non-active-record-model

希望有帮助,

于 2008-12-04T16:12:23.070 回答
2

你在正确的轨道上。许多应用程序在应用程序/模型中都有不从 ActiveRecord::Base 继承的类。每当您发现自己在控制器操作中管理大量任意变量时,最好考虑将这些数据抽象为非持久模型。

于 2008-12-04T16:16:18.100 回答
0

这是一个目前没有很好记录的领域,可能是因为 ActiveRecord 的东西更性感?

我经历了同样的过程,发现我的控制器动作变得令人不安,并且充满了逻辑,因为我努力从基于 ActiveRecord 的模型中构建派生数据,而这些模型又开始获得他们并不真正想要或不需要的额外责任.

一旦我得到与你现在得到的相同的建议,整个事情就变得非常简单。

于 2008-12-04T21:59:25.567 回答