From 71547d91a3c6c1d952500e398e4fa679a5a6f8fb Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Thu, 30 Jun 2016 11:33:21 +0300 Subject: [PATCH] Story#119627029 - more efficient legal doc search by checksum (cherry picked from commit 952d15d) --- app/models/legal_document.rb | 9 ++++----- db/migrate/20160629114503_add_hash_to_legal_doc.rb | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 7a5aa0d4d..8a8b3ba94 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -34,9 +34,9 @@ class LegalDocument < ActiveRecord::Base def save_to_filesystem digest = Digest::SHA1.new binary = Base64.decode64(body) - ld = LegalDocument.where(checksum: digest.update(binary)) + ld = LegalDocument.find_by(checksum: digest.update(binary)) - if !ld + if ld.nil? loop do rand = SecureRandom.random_number.to_s.last(4) next if rand.to_i == 0 || rand.length < 4 @@ -49,10 +49,9 @@ class LegalDocument < ActiveRecord::Base File.open(path, 'wb') { |f| f.write(binary) } unless Rails.env.test? self.path = path + else - - self.path = ld.first.path - + self.path = ld.path end end diff --git a/db/migrate/20160629114503_add_hash_to_legal_doc.rb b/db/migrate/20160629114503_add_hash_to_legal_doc.rb index c79a5d13f..8ea2f182d 100644 --- a/db/migrate/20160629114503_add_hash_to_legal_doc.rb +++ b/db/migrate/20160629114503_add_hash_to_legal_doc.rb @@ -1,5 +1,6 @@ class AddHashToLegalDoc < ActiveRecord::Migration def change - add_column :legal_documents, :checksum, :text + add_column :legal_documents, :checksum, :string + add_index :legal_documents, :checksum end end