Из-за ошибки в STI средство поиска ActiveRecord возвращало экземпляр базового класса (User) вместо экземпляра подкласса (Consumer). Я думал, что это поведение по умолчанию и, следовательно, хотел привести экземпляр базового класса (пользователь) к экземпляру подкласса (потребитель). Мое предыдущее решение стало излишним после устранения ошибки.
т.е.
u = User.find(id) # returns an instance of Consumer class