Rails为每个创建的新模型创建哈希

时间:2013-08-22 12:38:29

标签: ruby-on-rails ruby md5

每当在Rails中创建新模型时,id字段用于标识它。

我想知道每当以与id类似的方式创建模型时,是否存在创建唯一哈希的简洁方法。

1 个答案:

答案 0 :(得分:1)

如果您正在寻找持久性唯一哈希,可以添加名为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