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

时间:2011-09-11 06:19:32

标签: ruby-on-rails activerecord

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

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

1 个答案:

答案 0 :(得分:6)

这是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'