Скачать изображение с помощью винограда и 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
Другие вопросы по тегам