Загрузка файла в Rails - данные - это объект, как мне вернуть его в моем представлении?

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

  •  05-07-2019
  •  | 
  •  

Вопрос

При выполнении загрузки в моем проекте Rails база данных сохраняет

--- !ruby/объект:файл content_type:приложение / октетный поток исходный путь:мои.числа

как мне заставить его возвращать мои.numbers только в моем представлении?

Огромное спасибо!Марко

ps.Я не хочу предпочтительно использовать attachment_fu или любой другой плагин.

Это было полезно?

Решение

Загруженный файл фактически принимается вашим контроллером как файловый объект, а не как данные, поэтому вы несете ответственность за его чтение.Обычно загруженные файлы сохраняются во временном каталоге, и открытый дескриптор файла для него присутствует в параметрах.

Вы могли бы сделать что-то вроде следующего, чтобы извлечь данные:

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

Вероятно, вам нужно будет убедиться, что столбец в базе данных может хранить двоичные данные.В миграциях MySQL это тип столбца :binary.

Другие советы

Вы можете получить доступ к имени загруженного файла с помощью вспомогательного параметра original_filename.итак, параметры [:модель][:файл].original_filename

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top