попытка POST к конечной точке API rails и попытка просто разместить объект изображения в поле ActionText. вот что я пробовал:
require 'rest_client'
require 'base64'
image_data = Base64.encode64(File.open("lastsnap.jpg", "rb").read)
url = "http://localhost:3000/apiv1/sensors"
data = { sensor: { image: { content_type: "image/jpeg", filename: "lastsnap.jpg", payload: image_data}}}
header = {content_type: "json", accept: "json"}
RestClient.post( url, data, header)
вызов этого скрипта и отправка на конечную точку приводит к этой ошибке:
Unpermitted parameter: :image
(0.1ms) begin transaction
↳ app/controllers/apiv1/sensors_controller.rb:27:in `create'
Sensor Create (1.2ms) INSERT INTO "sensors" ("created_at", "updated_at") VALUES (?, ?) [["created_at", "2019-11-08 23:15:09.698765"], ["updated_at", "2019-11-08 23:15:09.698765"]]
↳ app/controllers/apiv1/sensors_controller.rb:27:in `create'
(1.0ms) commit transaction
↳ app/controllers/apiv1/sensors_controller.rb:27:in `create'
Completed 200 OK in 9ms (ActiveRecord: 2.3ms | Allocations: 2346)
, поэтому, если нам нужносообщение в следующем формате:
@message.image.attach(params[:images])
из нашей модели
has_many_attached :images
и нашего контроллера
params.require(:message).permit(:title, :content, images: []
как мне конструировать вызов API POST? похоже, что json, который я передаю, не попадает в атрибут объекта, так как он создает объект ..
любая помощь приветствуется