Сохранение файлов на Rails с помощью Carrierwave

Я использую Carrierwave для загрузки файлов. Когда файл получен в контроллере, я устанавливаю его в объект модели и сохраняю модель.

@submission = Submission.new(params[:submission])
@submission.file = params[:submission][:file]
@submission.save

Затем я вижу, что файл сохраняется в структуре каталогов. Я предполагаю, что эта конфигурация устанавливает каталог

загрузчики/submission_uploader.rb

def store_dir
  "files/#{model.class.to_s.underscore}/#{model.id}/#{mounted_as}/"
end

Я также получаю файлы из разных источников. Например, пользователь может загрузить zip-файл, затем zip-архив распаковывается на сервере, и создается новое представление с каждым извлеченным файлом и теми же параметрами, и оно сохраняется.

В этом случае, когда файл получен не из загрузки, а из других источников, таких как файлы, хранящиеся на сервере, при сохранении модели создается та же структура каталогов, что и при загрузке файла?

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

Как я могу установить разные файлы для отправки и убедиться, что они сохраняются в той же структуре каталогов, что и при получении файла из загрузки?


person siamii    schedule 09.02.2012    source источник


Ответы (1)


Оказывается, Carrwave тоже является фреймворком ORM, так что он работает.

person siamii    schedule 11.02.2012