Да, я думаю, что before_save - хороший вариант для этого.Я не знаю, есть ли у вас отдельные поля для имени / фамилии и отчества, тогда было бы легче, потому что отчество не должно начинаться с заглавной буквы.
Вот простая реализация:
before_save :capitalize_names
protected
def capitalize_names
['first_name', 'last_name', 'middle_name'].each do |name|
self.attributes[name] = self.attributes[name].capitalize
end
end