Изыскивая код рельсов, я наткнулся на with_scope .
Из того, что я могу сказать, он берет тип и условия области видимости, объединяет их в существующие условия для этого типа области, уступает блоку, а затем избавляется от дополнительной области.
Итак, моя первая мысль - в многопоточной среде (например, jruby on rails), что произойдет, если в то время, как поток 1 выполняет блок, поток 2 решает выполнить Model.find: all? Мне кажется, что это состояние гонки, ожидающее наступления.
Я что-то упустил?