Вот как я бы это сделал:
- Я бы добавил добавить поле с именем
completed
с логическим типом в таблицу задач и по умолчанию false
- Если задача выполнена, поле обновляется до
true
- . Я бы изменил ваш метод
completed_tasks
:
// Project model
def completed_tasks
tasks.where(completed: true).count
end
Обратите внимание, что я удалил self
.Вам не обязательно явно вызывать это, поскольку вы уже находитесь внутри модели.
Я бы изменил ваш
isDone
метод, вы не используете camelCase для именования в Ruby, соглашение заключается в использовании snake_case.
// Project controller
def number_of_tasks_done
project = Project.find(params[:id])
render json: project.completed_tasks, status: 200
end
Я предполагаю, что вы отправляетеid
проекта из внешнего интерфейса, и это то, к чему я обращаюсь в параметрах как params [: id], и я также предполагаю, что вы хотите отправить ответ обратно во внешний интерфейс как JSON для обработки /дисплей.