У меня есть три модели:named_scope или find_by_sql?
- пользователя
- Award
- Трофей
Ассоциации являются:
- Пользователь имеет множество наград
- Trophy имеет много наград
- Award принадлежит пользователю
- премии принадлежит трофею
- Пользователю имеет много трофеев через награды
Поэтому user_id является Ф.К. в орденах, и trophy_id является Ф.К. в орденах.
В модели Trophy, которая является моделью STI, есть столбец trophy_type. Я хочу вернуть список пользователей, которым был присужден определенный трофей - (trophy_type = 'GoldTrophy'). Пользователи могут быть награждены одним и тем же трофеем более одного раза. (Я не хочу отличных результатов.)
Могу ли я использовать named_scope? Как насчет их цепочки? Или мне нужно использовать find_by_sql? В любом случае, как бы я его закодировал?