【发布时间】:2013-05-22 14:01:09
【问题描述】:
我的模型结构如下:
- 用户通过 ResponseSets 进行了许多调查(用户可以通过为每次尝试创建 ResponseSets 多次参加同一个调查)。
- ResponseSet 有很多响应
- Response 属于 Questions、Answers 和 ResponseSets。
我需要一个 Rails 查询来查找:
有多少用户在他们最后的 ResponseSet(意味着最后一次尝试)中为与答案对应的给定调查选择了给定答案。
有多少用户在他们最后的 ResponseSet(意味着最后一次尝试)中为与问题对应的给定调查选择了给定问题。
【问题讨论】:
-
response_sethas_oneuser? -
更好,
response_setbelongs_touser? -
我已经解决了一个非常相似的问题,期待您得到一个很好的答案。问题不在于提出查询,而是获得合理的效率。获取每个用户和每个问题的最后一个响应需要进行索引扫描,无论您如何对其进行切片。我想你必须做我所做的:使用回调来维护一个
LastResponseSetByUser表,这样一个简单的连接就可以得到你需要的东西。如果您没有得到更好的结果,我将提供详细信息。 -
您将使用什么属性来确定“最后一个”响应集 -
created_at、updated_at、id? -
@Gene - 如果可以,请。从早上开始真的很绝望......
标签: ruby-on-rails postgresql activerecord ruby-on-rails-3.2