我有三个模型:
- 用户
- 奖
- 杯
这些协会是:
- 用户有很多奖项
- 奖杯有很多奖项
- 奖励属于用户
- 奖品属于奖杯
- 用户通过奖励获得了许多奖杯
因此,user_id 是奖项中的 fk,而 trophy_id 是奖项中的 fk。
在作为 STI 模型的 Trophy 模型中,有一个 trophy_type 列。我想返回一个获得特定奖杯的用户列表——(trophy_type = 'GoldTrophy')。用户可以多次获得同一个奖杯。(我不想要不同的结果。)
我可以使用 named_scope 吗?把它们串起来怎么样?还是我需要使用 find_by_sql?无论哪种方式,我将如何编码?