在普通的Java中,我会使用:
public User(String name, String email) {
this.name = name;
this.email = f(email);
this.admin = false;
}
然而,在Rails(3.2.3)中,我找不到一个简单标准的方法来使用ActiveRecords。
1. 重写initialize函数
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
但可能会存在一些废弃问题。
所以,使用正确/标准的方法是什么?
User.new(:name => 'Bon', :email => 'bob@example.com')
。您是想以不同的方式使用它吗? - Dylan Markow