Как получить доступ к вложениям скрепки на стороне сервера? - PullRequest
3 голосов
/ 20 января 2011

Я использую скрепку для прикрепления файла Excel к режиму.

Цель - импортировать данные из файла Excel в базу данных.

Model: Import
has_attached_file: spreadsheet

Для процесса импорта я хочу получить доступ к файлу в моей модели следующим образом.

path = "#{Rails.root}/public/#{spreadsheet.url}"    

Это не работает.Я думаю, потому что URL имеет метку времени в конце.

В целом, каков наилучший способ доступа к вложениям на стороне сервера?

Ответы [ 2 ]

5 голосов
/ 20 января 2011

Я думаю, вы ищете метод to_file.Вы должны быть в состоянии сделать что-то вроде этого:

excel_file = self.spreadsheet.to_file

, который либо возвратит загруженный файл с сервера (если вы используете s3 или удаленное хранилище), либо он был назначен моделино еще не сохранено (если вы не вызывали model.save с момента его загрузки), он возвращает временный файл, сохраненный на диске.

Оттуда вы сможете использовать гем или библиотеку Excel дляразбирать содержимое.

В качестве альтернативы вы можете использовать spreadsheet.url(nil, false) - второй параметр указывает, добавлять ли отметку времени или нет.

1 голос
/ 20 января 2011
...