【发布时间】:2013-07-16 21:33:04
【问题描述】:
我有一个具有不同属性的模型。并非每个实例的每个属性都有一个值。
class Location
attr_accessible :name, # string, default => :null
:size, # integer, default => 0
:latitude, # float, default => 0
:longitude # float, default => 0
# Returns a unique hash for the instance.
def hash
# ...
end
end
如何实现一个散列函数,它返回一个实例的唯一 ID?每次我在对象上调用散列函数时,它都应该是相同的。我不想要一个随机的唯一 ID。应该可以将哈希存储在 sqlite3 数据库中而无需修改。
正如您在answer by MetaSkills 中看到的那样,重写 hash 方法不是一个好主意,因为它“被大量红宝石对象用于比较和相等"。因此我将其重命名为custom_attributes_hash。
【问题讨论】:
标签: ruby hash sqlite uniqueidentifier