Самая простая вещь будет
task.subtasks.where(:completed => true).exists?
Если вы задаете область действия completed
для подзадач, ее можно сократить до
task.subtasks.completed.exists?
Оба они будут запускать запрос к базе данных, поэтому, если у вас уже есть загруженные подзадачи (task.association(:subtasks).loaded?
), вероятно, будет быстрее манипулировать объектами ruby через что-то вроде
task.subtasks.any? {|subtask| subtask.completed?}