Я пытаюсь, плохо, внедрить систему достижений в свое приложение Ruby on Rails.
У меня есть длинный список достижений, которые я бы хотел проверить. Все инициируются некоторыми действиями создания в разных контроллерах.
У меня была идея, что у меня будет модель достижений, которая включает в себя контроллер и действие, на которое он отвечает. Затем сделайте фильтр перед созданием и проверьте применимые достижения. Я застреваю, когда дело доходит до фактического определения/выполнения достижений. Для каждого достижения могут потребоваться разные данные. Например, вы захотите узнать, сколько вопросов ответили пользователю, еще одно количество комментариев, которые они сделали, и третье число тех, кого пригласил пользователь.
Лучше всего сделать, чтобы на самом деле просто вставить весь необходимый рубиновый код прямо в БД? Я мог видеть, что делает самостоятельный блок, который делает все активные записи, и т.д., И возвращает true/false, хотя там все еще есть некоторые проблемы, связанные с тем, что нужно заранее знать (то есть current_user и т.д.).
Какие-нибудь разумные лучшие практики, которые не заставляют меня чувствовать себя грязным? Я мог видеть, что полный механизм политики/правил является одним из путей, хотя это может напугать меня больше, чем планировать.
спасибо! Орен