#ruby-on-rails #json #ruby #api
Вопрос:
У меня возникли проблемы с импортом файла .json и сохранением данных внутри него в базе данных api. Мой код выглядит так:
def create content = JSON.parse(File.open(params[:products]).read) @product = Product.new(content) if @product.save render json: { message: 'Produto Salvo', data: @product }, status: 200 else render json: @product.errors, status: :unprocessable_entity end end
Файл(products.json)содержит эти данные:
[{ "title": "Brown eggs", "type": "dairy", "description": "Raw organic brown eggs in a basket", "filename": "0.jpg", "height": 600, "width": 400, "price": 28.1, "rating": 4 }, { "title": "Sweet fresh stawberry", "type": "fruit", "description": "Sweet fresh stawberry on the wooden table", "filename": "1.jpg", "height": 450, "width": 299, "price": 29.45, "rating": 4 }]
К моменту реализации метода все поля сохраняются как НУЛЕВЫЕ:
#lt;ActiveRecord::Relation [#lt;Product id: 3, title: nil, product_type: nil, description: nil, filename: nil, height: nil, width: nil, price: nil, rating: nil, created_at: "2021-11-10 14:15:11.261454000 0000", updated_at: "2021-11-10 14:15:11.261454000 0000"gt;]gt;
Как сохранить правильно заполненные данные?
Ответ №1:
Похоже, вы читаете в массиве из нескольких продуктов?
Я бы предложил вставить binding.pry
между тем, где вы установили content
, и тем, где вы установили @product
Вставьте значение content
здесь, и я думаю, что решение станет ясным.