ПРОБЛЕМА:
Я пытаюсь сделать запрос POST для Visions. У него есть два параметра, оба из которых передаются. Тем не менее, он сохраняет в этом формате (и URL-адрес изображения всегда 'NULL'):
{"data":{"user":{"id":26,"image":{"url":null},"description":"dsfsfdsfdsfsd"}}}
Что мне нужно сделать, чтобы сохранить передаваемый параметр изображения в виде строки URL-адреса внутри объекта изображения?
Это моя таблица видений:
class CreateVisions < ActiveRecord::Migration[5.1]
def change
create_table :visions do |t|
t.string :image
t.text :description
t.timestamps
end
end
end
VisionsController.rb:
def create
@vision = current_user&.visions.build(vision_params)
@vision.save
render :create, status: :created
end
def vision_params
params.require(:vision).permit(:image, :description)
end
vision.json.jbuilder:
json.call(
vision,
:id,
:image,
:description
)
Пользовательский модал:
class User < ApplicationRecord
acts_as_token_authenticatable
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :trackable, :rememberable, :validatable
has_many :posts
has_many :visions
end
** Видение модели: **
class Vision < ApplicationRecord
belongs_to :user
mount_uploader :image, ImageUploader
end
Я делаю свой запрос POST так:
let response = await fetch('https://prana-app.herokuapp.com/v1/visions/', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-User-Email': this.state.email,
'X-User-Token': this.state.accessToken
},
body: JSON.stringify({
vision: {
description: 'dsfsfdsfdsfsd',
image: this.state.uploadFile
}
})
});
когда я делаю запрос, он получает параметры следующим образом:
Parameters: {"vision"=>{"description"=>"dsfsfdsfdsfsd", "image"=>"file:///BLABLABLA.jpg"}}