我正在为rails应用程序开发“分析”页面。分析页面不会保留任何自己的数据(此时它非常原始),但确实利用了我从数据库中获取的指标(通过ActiveRecord中内置的聚合表达式)。除了收集和呈现指标之外,我唯一的其他要求是允许用户提供日期范围来过滤数据。到目前为止,我一直在使用实例变量等来存储指标信息...随着指标数量的增加以及管理开始和结束过滤日期的需要我开始认为我应该将这些数据放入其中自己的模特。如果我将所有“数据”移动到模型中,我应该只使用带有attr_accessors的普通对象,还是有一个更合适的基类,我可以用于非持久性数据?我对MVC架构非常熟悉,知道我的控制器变得臃肿但对导轨不熟悉,以确定在这种情况下我应该如何组织我的数据/逻辑。
非常感谢任何见解!
答案 0 :(得分:7)
听起来你可以使用Rails非主动记录模型。有一个很好的Railscast:
http://railscasts.com/episodes/121-non-active-record-model
希望有所帮助,
答案 1 :(得分:2)
你在这里走在正确的轨道上。许多应用程序在app / models中都有不从ActiveRecord :: Base继承的类。每当您发现自己在控制器操作中管理大量任意变量时,就可以考虑将该数据抽象为非持久模型。
答案 2 :(得分:0)
目前这个领域还没有很好的记录,可能是因为ActiveRecord的东西比较性感?
我经历了同样的过程,发现我的控制器操作变得非常大而且充满了逻辑,因为我努力从基于ActiveRecord的模型构建我的派生数据,这反过来开始获得额外的责任,他们并没有真正想要或需要。
一旦我得到the same advice you're getting now,整个事情就会得到简化。