Пожалуйста, помогите мне понять, как работает CarrierWave. Я использую минимальное приложение Sinatra/DataMapper с следующим содержанием:Где загружается загрузка CarrierWave
class VideoUploader < CarrierWave::Uploader::Base
storage :file
end
class Video
include DataMapper::Resource
property :id, Serial
property :name, String
property :desc, Text
mount_uploader :file, VideoUploader
end
get '/' do
slim :form
end
post '/' do
video = Video.new
video.name = params[:name]
video.desc = params[:desc]
video.file = params[:file]
video.save
redirect '/'
end
Как я понял mount_uploader :file, VideoUploader
строки в видео определение добавляет .video метода видео экземпляра, и я могу хранить файлы загруженные назначая params [: file]. Когда я пытаюсь отправить форму из браузера, запрос успешно создает запись в таблице DB, но я не могу найти никаких признаков существования файла в DB и public_directory. Что я делаю неправильно?
'video.file.path' где видео является экземпляром' Video' – avlazarov
@avlazarov я должен определить это * сообщение * действие? – askhat
После того, как ваше почтовое действие удастся (где вы загружаете файл), получите видеообъект в консоли rails ('video = Video.last'), а затем' video.file.path' – avlazarov