胖模型,activeModel还是在控制器中?

时间:2012-09-19 06:14:00

标签: ruby-on-rails ruby-on-rails-3 database-design activerecord activemodel

我的问题与数据建模有关。

我们有一个分数模型,它链接到分部模型和元素模型。在Division和Element模型之间存在一个habtm-relation。必须根据Element模型的属性(标准属性)评估得分。

现在我们要介绍“问题”的概念。问题是每个分数都没有通过标准。 (附加信息:随着时间的推移会记录多个分数,存在不同类型的分数。需要在score_types和日期范围上过滤)

对问题概念进行建模的最佳方法是什么?

  1. 每次请求查看问题时,只需计算控制器中的问题
  2. 介绍问题模型(实际上并不包含分数和元素信息中的任何新信息
  3. 创建一个像ActiveModel这样的无表格模型。
  4. 以上都不是,因为这是一个新手问题,你应该这样做......(填空)
  5. 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在不知道你的代码库是什么样子的情况下,假设问题模型只存储相关分数的id,我建议你在Score模型上使用一个范围。您可以创建ARel查询(或查询)以获得所需的分数,而无需添加太多代码。查看Rails Guide on Active Record Querying - Scopes section了解详情。

如果您需要问题模型来执行Score无法执行的任何操作,我会考虑创建一个实际模型(持久化或不是另一个决策)。