1

所以我得到了两个 Rails 6 应用程序:

  • 后端(仅限 API)

    • gem 'jsonapi-resources', '~> 0.9'
    • gem 'jsonb_accessor', '~> 1.0'
  • 前端

    • gem 'json_api_client', '~> 1.18'

在后端部分,我设置了一个模型(Car),它有一个 jsonb 字段来保存属性(例如设备)。模型的相关部分如下所示:

# Backend
class Car < ApplicationRecord
  # additional_equipment is the name of the field in the DB which holds the JSONB
  jsonb_accessor :additional_equipment,
    satefy_features: [:string, array: true, default: []]
end

然后,在前端我设置到这个模型的连接,如下所示:

# Frontend
module Api
  class Car < JsonApiClient::Resource
    property :safety_features, type: :string, array: true, default: []
  end
end

然后,当我通过此连接进行创建调用时,数组内请求中存在的所有值都会消失。所以这样做:

Api::Car.create({safety_features: ['ABS']})

最终将获得新的汽车记录

Car.last.safety_features #=> []

这只发生在数组内的值上。所有其他值(字符串、整数等)都会正确传输。

我觉得我只是在某处缺少配置。任何帮助深表感谢。

4

0 回答 0