我有一个具有只读属性的类:
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
由于我正在尝试分配受保护的属性,因此可以预见会导致错误。这样做的适当方法是什么?