问题标签 [fastjsonapi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 应该匹配器 - Rspec - 测试控制器对 Json 响应的操作 - FastJSON
如何使用 shoulda-matchers 测试这些操作,响应 JSON 成功 200 和失败 422 以及如何使用普通 RSpec 进行测试:如果可以的话,这两种情况:
我认为在其存储库中缺少一些关于应该匹配的信息。如果你能帮助非常感谢。
ruby-on-rails - 将 Sequel 与 jsonapi-serializer 一起使用
在 Rails api 项目中,我添加了这个 gem 来返回 json
这些是我定义的模型,所有非常基本的东西都在进行。
我生成了一个序列化程序类
现在的问题
然而以下...
返回此错误消息
FastJsonapi::MandatoryField(id 是 jsonapi 规范中的必填字段)
我不太明白为什么会发生这种情况,因为显然 Sequel 模型包含一列id
并且调用它会返回预期的结果
ruby-on-rails - Rails Fast Json API 包括范围
在我的 Rails 6/Grape API 应用程序中,我有一个序列化程序,我想只包含活动旅程(通过活动我的意思是 Journey.is_deleted: false)。当前端点如下所示:
它包括所有旅程,无论他们是否拥有is_deleted: true
或is_deleted: false
。我只想包含旅程,is_deleted: false
而不是在序列化响应中显示已删除的旅程。
EnrolledJourneysSerializer
JourneyListSerializer
Journey
与模型上的 default_scope 有什么不同吗?
ruby-on-rails - 发布请求上的 FastJsonapi ID 必填字段,无法处理的实体?
我在我的项目中添加了这个 gem 用于 json 序列化:gem 'jsonapi-serializer'
在发布请求时,我在创建时收到以下错误:
FastJsonapi::MandatoryField (id is a mandatory field in the jsonapi spec)
我的模型很简单:
后控制器中此方法的保存部分是出现问题的地方:
在我的帖子请求中,我使用JSON.Stringify()
了哪个控制台日志打印:{"title":"Hello","content":"Hello World","category_id":"1","profile_id":"1"}
Rails 打印的参数:
我之前尝试的格式是将数据包装在 Post 对象中,这是同样的错误。
我试图模拟 id 但我仍然收到错误。我还尝试删除序列化程序,但我得到了一个简单的无法处理的实体错误。不过,通过控制台直接创建帖子是可行的。
在另一个项目上测试,我没有收到任何错误,所以它可能不是序列化程序的错。但是,我不确定在这种情况下还能去哪里看。提前致谢!
编辑:要求的 PostSerializer 代码
ruby-on-rails - JSON API 标准:如何关联未保存且还没有 id 的数据?
jsonapi-serializer
在我的 Rails 应用程序中,我通过gem以 JSON API 标准格式将数据发送到反应前端。这对于来自我们数据库的数据很有效,但是当我们有失败的表单数据时,它以 rails 嵌套资源的形式发送,有时需要在实际保存记录之前返回错误的数据。
当新模型数据验证失败时,我需要将这些错误返回到我的前端并保持关联完好无损。我也一直在尝试运行它们jsonapi-serializer
,但是没有 id 的记录不会成为relationships
密钥。问题是失败的新记录没有id,它们返回到前端未关联。
到目前为止,我对此的唯一解决方案是在其中手动填充假的临时 ID。我不确定我是否遗漏了一些明显的东西。该 id 在前端被删除以重新提交。我的解决方案并不完美,并且存在局限性和问题。
有没有内置的方法可以做到这一点,还是我坚持自己的实现?是否有某种替代键可以用于此关联?
对于它的价值,这是我到目前为止的实现,只是为了澄清我在做什么。它远非完美,很多代码似乎应该是内置解决方案的问题。它基于尝试迭代正在序列化的对象树并查看是否需要“假”ID。这仍然会扼杀一些可以通过的东西,包括:[]
ruby-on-rails - 通过Rails中的表连接has_many的属性
我有以下2个模型:
父模型:
保姆型号:
他们有一个来自 Job 模型的 has_many through 关系:
我现在想打电话babysitter.parents
,但让每个父母也包括属性薪水(Jobs
表中的一个属性)。
这可能吗?
我试过了:
此外,是否可以将结果包含在 fastJsonApi 中?
options = { 包括:[:babysitter, :'parents_including_salary']} json = Api::CampaignReportSerializer.new(otherData, options).serialized_json
ruby-on-rails - 如何在仅 API 的 Rails 中保存嵌套的多对多关系?
在我的 Rails(仅限 api)学习项目中,我有 2 个模型,Group 和 Artist,它们与加入模型 Role 具有多对多关系,其中包含有关该关系的附加信息。我之前可以通过自己保存连接模型来保存 m2m 关系,但在这里我试图将关系保存为嵌套关系。我正在使用jsonapi-serializer gem,但没有与之结婚,也没有绑定到 JSON api 规范。让它发挥作用比遵循最佳实践更重要。
使用此设置,我在尝试保存时收到 500 错误并出现以下错误:
Unpermitted parameters: :artists, :albums
和ActiveModel::UnknownAttributeError (unknown attribute 'relationships' for Group.)
我怀疑我的问题在于强大的参数和/或 json 有效负载。
楷模
控制器#create
控制器#group_params
序列化器
示例 JSON 有效负载
附加信息
知道我能够使用以下 json 和强参数的组合保存另一个模型可能会有所帮助。
ruby-on-rails - 如何在仅 API 的 Rails 中保存嵌套的一对多关系?
在我的 Rails(仅限 api)学习项目中,我有 2 个模型,Group 和 Album,它们具有一对多的关系。当我尝试使用嵌套的(已经存在的)专辑保存组时,我收到以下错误,ActiveRecord::RecordNotFound (Couldn't find Album with ID=108 for Group with ID=)
. 我正在使用jsonapi-serializer gem。下面是我目前的设置。任何帮助表示赞赏。
楷模
组控制器#create
GroupsController#group_params
序列化器
示例 JSON 有效负载
ruby-on-rails - fastjsonapi 序列化程序错误 | NameError(未初始化的常量)
我刚刚添加了 gem ' fast_jsonapi ',用于将我的 rails api 数据序列化为 json。
我创建了一个网站模型类。下面是我想通过以下方式访问数据的序列化程序类:
因此,我在 rails 控制台中运行以下命令。
它给出了错误: