所以我得到了两个 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 #=> []
这只发生在数组内的值上。所有其他值(字符串、整数等)都会正确传输。
我觉得我只是在某处缺少配置。任何帮助深表感谢。