Загрузка файла в Rails - это объект, как мне вернуть его на мой взгляд? - PullRequest
1 голос
/ 22 октября 2009

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

---! Ruby / object: File content_type: application / октет-поток original_path: my.numbers

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

Спасибо большое! Marco

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

Ответы [ 2 ]

1 голос
/ 22 октября 2009

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

Вы можете сделать что-то вроде следующего для получения данных:

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 это тип двоичного столбца.

0 голосов
/ 29 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...