В простой java я бы использовал:
public User(String name, String email) {
this.name = name;
this.email = f(email);
this.admin = false;
}
Однако я не смог найти простой стандартный способ сделать в рельсах (3.2.3) с помощью ActiveRecords.
1. переопределить инициализацию
def initialize(attributes = {}, options = {})
@name = attributes[:name]
@email = f(attributes[:email])
@admin = false
end
но он может быть пропущен при создании записи из базы данных
2. используя обратный вызов after_initialize
переопределив его:
def after_initialize(attributes = {}, options = {})
...
end
или с макросом:
after_initialize : my_own_little_init
def my_own_little_init(attributes = {}, options = {})
...
end
но могут быть некоторые проблемы с устаревшими версиями.
Есть несколько других ссылок в формате SO, но они могут быть устаревшими.
Итак, какой правильный/стандартный метод использовать?