Implementação de upload de mídia totalmente funcional no aplicativo da web

Suponha que tenhamos o aplicativo da web que manipula a criação, a leitura, a atualização e a exclusão de artigos, e cada artigo deve ter uma galeria de imagens. Eu tenho que fazer uma relação de um para um entre o artigo e a galeria e uma relação entre a Galeria e a mídia.

O HTML5 oferece muitos recursos, como multiupload, então eu quero usar esse excelentehttp://blueimp.github.io/jQuery-File-Upload/ plugin para isso. O problema é como lidar com o upload de arquivos "na memória", como os dados de outras formas?

Por exemplo, quando mostramos a página para criar um novo artigo, poderíamos preencher os campos de dados do artigo e selecionar as imagens a serem carregadas, quando clicamos no botão salvar as imagens devem começar a carregar e depois o formulário deve ser enviado. Quando a validação falha, as imagens ainda devem ser exibidas no frontend, mas no nothink do lado do servidor deve ser salvo.

Uma das soluções é criar algo como "criar identificação temporária de sessão de entidade" antes de exibir o formulário inteiro e esse id pode ser usado para criar um diretório temporário para salvar uploads, portanto, após o sucesso salvo, essas imagens podem ser movidas para o diretório apropriado, mas fazer o "criar id de sessão temporária da entidade"?

A outra solução que considero é a abordagem "com o ID de edição", porque podemos manipular os uploads com o ID da galeria salvo anteriormente, mas às vezes não consigo salvar novos artigos em branco com a galeria, pois alguns campos não devem estar vazios em db.

Para os trilhos vihttps://github.com/thoughtbot/paperclip gem que no Readme diz:

Paperclip destina-se como uma biblioteca de anexos de arquivo fácil para o Active Record. A intenção por trás disso era manter a configuração o mais fácil possível e tratar os arquivos da mesma forma que os outros atributos possíveis. Isso significa que eles não são salvos em seus locais finais no disco, nem são excluídos se forem definidos como nil, até que ActiveRecord :: Base # save seja chamado.

Minha pergunta é como isso funciona?

questionAnswers(2)

yourAnswerToTheQuestion