使属性仅在创建期间可分配

是否可以在创建模型对象期间具有仅可批量分配的属性?

例如, username属性在创建对象时应该是可批量分配的,但在此之后不应该是可分配的(它应该是只读的)。

这就是attr_readonly所做的:

 class User < ActiveRecord::Base attr_readonly :username end u = User.create(:username => 'dude') u.username # => 'dude' u.update_attributes(:username => 'dudette') u.reload.username # => 'dude'