`bs.name.blank?` - не очень понятно, что это означает. ниже еще употребляется `name.blank? && source.present?`. Нужно это выделить в методы и назвать их по-человечески, чтобы, например, ПМ мог заглянуть в код и понять, что здесь происходит.

Отвечу на возможные возражения сразу же - да, есть таким ПМ-ы, которые смотрят и даже редактируют код (Андрей Тыцкий, например).