Как отправить params [: message] вместе с файлом, чтобы иметь подпись к изображению?
В Rails 4 размещать файлы с другими обычными параметрами, такими как inputзначения должны работать как показано ниже
def model_params
require_params = params.require(:model).permit(:param_one, :param_two, :param_three, :avatar)
require_params[:avatar] = model_params[:avatar].present? ? UploadIO.new(model_params[:avatar].tempfile, model_params[:avatar].content_type, model_params[:avatar].original_filename) : nil
require_params
end
require 'net/http/post/multipart'
url = URI.parse('http://www.example.com/upload')
Net::HTTP.start(url.host, url.port) do |http|
req = Net::HTTP::Post::Multipart.new(url, model_params)
key = "authorization_key"
req.add_field("Authorization", key)
http.use_ssl = (url.scheme == "https")
http.request(req)
end
В вашем случае просто
req = Net::HTTP::Post::Multipart.new(url.path,
{
"file" => UploadIO.new(params[:image].tempfile,
params[:image].content_type,
params[:image].original_filename),
"message" => params[:message]
})
проще:
params[:image] = UploadIO.new(params[:image].tempfile,
params[:image].content_type,
params[:image].original_filename)
req = Net::HTTP::Post::Multipart.new(url.path, params)
https://github.com/Feuda/multipart-post/tree/patch-1