2013-08-22 104 views
0

每當在Rails中創建新模型時,將使用id字段來標識它。Rails爲每個創建的新模型創建散列

我想知道是否有一種簡潔的方式來創建一個獨特的散列,只要模型以類似於id的方式創建。

+0

您可以添加一列,併爲其分配一個before_create回調該屬性 – Santhosh

回答

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