Загрузчик изображений CarrierWave - запрос POST отправляет правильные параметры, но изображение сохраняет изображение как «image»: {«url»: null} - PullRequest
0 голосов
/ 09 января 2019

ПРОБЛЕМА: Я пытаюсь сделать запрос 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"}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...