Совместим ли БЭМ с фреймворками (Ruby on Rails, AngularJs, NodeJs и т.д.)?
МОЖНО ИСПОЛЬЗОВАТЬ В ЛЮБЫХ ЯЗЫКАХ ПРОГРАММИРОВАНИЯ И В ЛЮБЫХ ФРЕЙМВОРКАХ
БЭМ относится к именованию блоков в фронтенде и структуре хранения блоков. 
Django и Ruby on Rails - фреймворки для бэкэнда, никакого отношения к БЭМ ни имеют. У них другая структура, к ним нужен другой подход - БЭМ не применим. Читайте документацию, как надо структурировать проект в каждом из фреймворков.
У Angular и React - тоже свои подходы к хранению функциональных блоков, свои best practice, но так как это фреймворки фронтовые к ним можно применять БЭМ.