Ho bisogno di nomi di file univoci per i miei file.Genera un nome file univoco
def filename
"#{SecureRandom.urlsafe_base64}.gif"
end
Questo permette di risparmiare un file di questo tipo:
ylGP48WxZXOY2OQ_x9dxAA.gif
tuttavia il suo rispettivo campo nella base di dati da salvare in questo modo:
jED48PRNz0asZzwYQXzecw.gif
Penso che quello che sta accadendo è che Carrierwave è chiamando la funzione file_name
quando sta scrivendo il file e quando salva l'istanza nel database, risultando urlsafe_base64 chiamato due volte e creando due stringhe diverse . Funziona perfettamente quando ho hardcoded un nome come test.
Quindi, come può fermarsi? So che è scandaloso chiedere, ma come posso fare in modo che Carrierwave usi lo stesso nome di file generato a caso nel database e durante la scrittura del file? Penso seriamente che questo dovrebbe essere considerato un bug.
quando si desidera solo un nome di file unico, perché non si tenta di prendere in considerazione 'YYYYMMddHHmmss.gif' come il nome del file ..? –
Sicuramente un'opzione. Spero solo che carrierwave non mi stia costantemente calpestando le dita dei piedi ... è buono ma potrebbe essere molto meglio. – user3067865