在普通的java中,我会使用:
public User(String name, String email) {
this.name = name;
this.email = f(email);
this.admin = false;
}
但是,我在 Rails (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
但可能存在一些弃用问题。
那么,使用的正确/标准方法是什么?