@zachfischer

Как можно реализовать контроллер для загрузки и скачивания фалов?

У меня есть приложения где backend - Rails 5, а frontend Angular 5. Я не могу понять как нужно написать контроллер и роутинг чтоб в дальнейшем можно было скачивать и загружать файлы используя service Angular. Обычный контроллер, который я использую, не работает:

class FilesController < ApplicationController
  before_action :set_file, only: [:show, :update, :destroy]

  def index
    @files = File.all

    render json: @files
  end

def show
  render json: @file
end

def create
  @file = File.new(files_params)

  if @file.save
    render json: @file, status: :created, location: @file
  else
    render json: @file.errors, status: :unprocessable_entity
  end
end

def update
  if @file.update(files_params)
    render json: @file
  else
    render json: @file.errors, status: :unprocessable_entity
  end  
end

def destroy
  @file.destroy
end

private
  def set_file
    @file = File.find(params[:id])
  end

  def files_params

    params.require(:file).permit!
  end
end


Например я хочу пока что просто посмотреть что там загружено перейдя по ссылке localhost:3000/files, выдает такую ошибку:

Completed 500 Internal Server Error in 1595ms

Encoding::UndefinedConversionError ("\xFF" from ASCII-8BIT to UTF-8):

app/controllers/spr_files_controller.rb:7:in `index'
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
2ord
@2ord
File - это встроенный класс в Ruby для работы с файлами на локальной файловой системе.
Там в FilesController полная ахинея написана.
Что значит:
@file = File.find(params[:id])
@files = File.all
@file = File.new(files_params)
@file.update(files_params)
@file.destroy

Google: screencast rails upload files
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы