upload de arquivos em dados Rails- é um objeto, como faço para devolvê-lo no meu ponto de vista?

StackOverflow https://stackoverflow.com/questions/1608312

  •  05-07-2019
  •  | 
  •  

Pergunta

Ao fazer um upload no meu projeto Rails, as lojas de banco de dados

--- ruby ??/ object: Arquivo content_type: aplicação / octeto de fluxo original_path: my.numbers

como faço para obtê-lo para retornar my.numbers em apenas meu ponto de vista?

Graças a um grupo! Marco

ps. Eu não quero usar attachment_fu ou qualquer outro plugin de preferência.

Foi útil?

Solução

Um carregamento de arquivo é realmente recebida pelo controlador como um objeto File, não como dados, por isso é de sua responsabilidade ler-lo em. Arquivos Normalmente enviados são salvos em um diretório temporário e um filehandle aberto para isso está presente no params.

Você poderia fazer algo como o seguinte para recuperar os dados:

def create
  # Read in data from file into parameter before creating anything
  if (params[:model] and params[:model][:file])
    params[:model][:file] = params[:model][:file].read
  end

  @model = MyModel.create(params[:model])
end

Você provavelmente precisa ter certeza de que a coluna no banco de dados pode armazenar dados binários. Em migrações MySQL este é o: tipo de coluna binário

.

Outras dicas

Você pode acessar o nome do arquivo enviado com a original_filename ajudante. assim params [: modelo] [: file] .original_filename

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top