在我们的Rails应用程序中,用户(或我们代表他)加载一些数据,甚至使用crud手动插入。
在此步骤之后,用户必须验证所有配置(数据)和"接受并同意"这一切都是正确的。
在某一天,应用程序将根据配置执行一些任务。
今天,我们已经开始了#34;冻结"标志,我们可以在哪里阻止数据的变化,这样用户就不会搞砸了......
但是我们也想做一些像哈希数据这样的事情并说出像#34;你的配置被冻结,哈希是34FE00 ......"。
这将使用户确定系统正在使用他批准的配置运行。
我们怎么能这样做?有7或8个表。创建的记录总数约为2k或3k。
批准后如何散列数据以检测更改?你会怎么做?
我正考虑在每个表中执行find_by_user,循环所有记录并使用一些字段(或全部)来构建字符串并在当前循环结束时对其进行哈希处理。
在循环所有表之后,我将有8个哈希字符串,并将连接并在最终哈希中散列它们。
它看起来怎么样?有什么想法吗?
答案 0 :(得分:0)
这是一个可能的实现。只需将object
定义为您想要散列的所有内容的数组:
require 'digest/md5'
def validation_hash(object, len = 16)
Digest::MD5.hexdigest(object.to_json)[0,len]
end
puts validation_hash([Actor.first,Movie.first(5)])
# => 94eba93c0a8e92f8
# After changing a single character in the first Actors's biography :
# => 35f342d915d6be4e