upload de arquivos em dados Rails- é um objeto, como faço para devolvê-lo no meu ponto de vista?
-
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.
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