每当在 Rails 中创建新模型时,id
都会使用该字段来识别它。
我想知道是否有一种巧妙的方法可以在以与 id 类似的方式创建模型时创建唯一哈希。
如果您正在寻找一个持久的唯一哈希,您可以添加一个名为的列unique_id
并执行以下操作:
class Foo < ActiveRecord::Base
before_save :generate_unique_id
def generate_unique_id
# generate a random hex string using trickery:
self.unique_id = rand(36**12).to_s(16) # => "22b0433e3d9ae776"
# generate a 12-char random string a-z0-9:
self.unique_id = rand(36**12).to_s(36) # => "os0w9cl8xi48"
# or, if you want to do something more obvious:
self.unique_id = SecureRandom.hex(6) # => "ba191acc80ef"
# or, if you want a legitimate UUID:
self.unique_id = SecureRandom.uuid # => "72569edd-1841-4fd9-af05-edf66a58b74b"
end
end