Make sure to save digest to DB

Rails use internal hash to store the properties of the object.
Make sure to have nice reporting.

Do not just return 'can't convert nil into String'
when user forget to select file for upload.
Error message for users uploading while editing.
Provide nice message when uploading file that has been already uploaded

Do not use (validates, :uniqueness => true), this will provide
more useful message.