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

ano*_*ard 4 activerecord ruby-on-rails

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

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

num*_*407 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'
Run Code Online (Sandbox Code Playgroud)