Условие where
всегда ограничивает число возвращаемых связанных задач.
Похоже, вы хотите вернуть проекты и все связанные с ними задачи независимо от статуса , еслипо крайней мере, одна из этих задач не завершена?
Вы можете попробовать это (я не думаю, что вам нужна лямбда, поскольку вы не используете переменные / времена / и т.д. в своей области видимости).Предполагается, что у вас есть has_many :tasks
и belongs_to :project
.Вам нужно настроить его, если вы используете has_many: through и т. Д.
scope :open_tasks, where("(select count(*) from tasks where tasks.project_id=projects.id) > 0").includes(:tasks)