Ответ на оба вопроса
1.- Это правильно, что вы делаете это в упражнении, потому что в противном случае вам пришлось бы отправить ссылку на упражнение для модели представления
2.- Как Я могу предположить, что в вашем коде вы используете эти списки позже, чтобы заполнить представление, правильнее было бы сделать заполнение списков в модели представления перед возвратом ответа на действие, но не с таким большим логом c как управление информацией, я не вижу в этом необходимости на 100%, поэтому нормально делать это в упражнении