Скачать изображение с помощью винограда и Carrierwave
Я в моем app/api/myapp/api.rb
Файл я пишу простым методом регистрации:
params do
requires :email, type: String, regexp: /.+@.+/, allow_blank: false
requires :password, type: String, allow_blank: false
requires :name, type: String, allow_blank: false
requires :surname, type: String, allow_blank: false
requires :person, type: Integer, allow_blank: false
end
post :register do
User.create!(email: params[:email],
password: params[:password],
name: params[:name],
surname: params[:surname],
remote_avatar_url: Faker::Avatar.image)
end
Как вы видите, я использую самоцвет для несущей волны, чтобы сохранить изображения моей модели. User
, Сейчас я просто назначаю случайное изображение из Faker Gem.
Как получить изображение, отправленное с клиента, и назначить его моей новой модели?
1 ответ
Решение
Просто используйте Rack::Multipart::UploadedFile
как пример ниже.
desc 'Upload Image.'
params do
requires :file, :type => Rack::Multipart::UploadedFile
requires :id, :type => Integer
end
post ':id/avatar' do
File.open(params[:file].tempfile, 'r') do |f|
# Do whatever you need with this file.
# Here, you can store it in the server filesystem or in your database.
end
end