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 –