読み取り専用属性を持つクラスがあります。
class User < ActiveRecord::Base
attr_readonly :key
validates_uniqueness_of :key
end
オブジェクトの作成時に属性を自動生成し、:key
作成後に属性を変更できないようにしたいと考えています。私はこれを試しました:
class User < ActiveRecord::Base
attr_readonly :key
validates_uniqueness_of :key
before_create :generate_key
private
def generate_key
self.key = Digest::MD5.hexdigest(Time.now.to_s + rand(100000).to_s)[0..5]
end
end
そして、保護された属性を割り当てようとしているので、予想通りエラーになります。これを行う適切な方法は何ですか?