1
在我们的Rails应用程序中,用户(或我们代表他)加载一些数据,甚至使用crud手动插入它。如何为用户创建的所有记录创建散列?
完成此步骤后,用户必须验证所有配置(数据)并“接受并同意”它们都是正确的。
在给定的一天,应用程序将根据配置执行一些任务。
今天,我们已经拥有了“冻结”标志,在这里我们可以防止数据的变化,因此用户不能乱的事情了......
但是,我们还要做一些像哈希数据,并说“像你的配置被冻结,散列是34FE00 ...”。
这会让用户确信系统正在运行他所批准的配置。
我们该怎么做?有7或8个表格。创建的记录总数约为2k或3k。
如何散列数据以检测批准后的更改?你会怎么做?
我想在每个表中做一个find_by_user,循环所有记录并使用一些字段(或全部)来构建一个字符串,并在当前循环的末尾对其进行散列。
循环所有表后,我会有8个哈希字符串,并将它们连接起来并将它们散列在最终的哈希中。
它看起来像什么?有任何想法吗?
我没有得到它 - 你希望用户通过3K DB条目读? –
我会使用审计。使用类似[paper_trail](https://github.com/airblade/paper_trail)的记录来保存更改,并让用户反转回滚不良内容。 – max
否Andrey,用户不会读取所有行。一些数据是由我们生成的。只有一小部分数据由用户提供...想象一下,用户应该为我们提供产品目录,类别列表等......在我们导入这些数据之后,他必须验证并且我们将冻结配置。 hashA = TableA.findByUser.all.map {| e | e.field_a + e.field_b} .to._s.to_md5 hashB = TableB.findByUser.all.map {| e | e.field_a + e.field_b} .to._s.to_md5 ... final_hash =(hashA + hashB + hashN).to_md5 –