У меня есть двоичный столбец, который содержит 256-битные контрольные суммы. Я могу хранить контрольные суммы, но когда я пытаюсь выполнить запрос через контрольную сумму, ничего не возвращается.
d = Digest::SHA2.new
d.update "large str i'm creating the hash with"
begin
codebase = Codebase.find_or_create_by_checksum(d.digest)
rescue ActiveRecord::StatementInvalid => e
# handle duplicate record error
end
Я пробовал где и разные версии найти. Ничего не возвращается Когда я использую find_or_create_by_checksum, поскольку он ничего не находит, он пытается создать его, и возникает исключение, так как у меня есть индекс uniq в столбце контрольной суммы, но все же мне нужно иметь возможность получить запись с соответствующей контрольной суммой.
create_table :codebases do |t|
t.binary :checksum, :null => false, :limit => 32
end
add_index :codebases, :checksum, :unique => true, :name => 'name_of_the_codebas_uniq_index'
Кто-нибудь знает, как это сделать?