我有一个具有不同属性的模型。并非每个实例的每个属性都有一个值。
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 数据库中而无需修改。
正如您在MetaSkills 的回答中所读到的,覆盖该方法并不是一个好主意,hash
因为它“被大量 ruby 对象用于比较和相等”。因此,我将其重命名为custom_attributes_hash
.