问题标签 [jsonapi-serialize]

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.

0 投票
1 回答
593 浏览

ruby-on-rails - 如何在仅 API 的 Rails 中保存嵌套的多对多关系?

在我的 Rails(仅限 api)学习项目中,我有 2 个模型,Group 和 Artist,它们与加入模型 Role 具有多对多关系,其中包含有关该关系的附加信息。我之前可以通过自己保存连接模型来保存 m2m 关系,但在这里我试图将关系保存为嵌套关系。我正在使用jsonapi-serializer gem,但没有与之结婚,也没有绑定到 JSON api 规范。让它发挥作用比遵循最佳实践更重要。

使用此设置,我在尝试保存时收到 500 错误并出现以下错误: Unpermitted parameters: :artists, :albumsActiveModel::UnknownAttributeError (unknown attribute 'relationships' for Group.)

我怀疑我的问题在于强大的参数和/或 json 有效负载。

楷模

控制器#create

控制器#group_params

序列化器

示例 JSON 有效负载

附加信息

知道我能够使用以下 json 和强参数的组合保存另一个模型可能会有所帮助。

0 投票
1 回答
203 浏览

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 有效负载

0 投票
1 回答
175 浏览

ruby-on-rails - 如何自定义 jsonapi-serializer 缓存命名空间 - Ruby on Rails

在我的 rails 应用程序中,我有categories基于location. 我想通过使用jsonapi-serializer's 缓存方法在序列化程序级别缓存这些类别cache_options store: Rails.cache, namespace: 'jsonapi-serializer', expires_in: 3.hours。这里的问题是,当我第一次调用它来检索类别时City A,例如然后稍后尝试从中检索类别City B仍然会显示City A的数据。我现在要做的是传递city给序列化程序,然后将其添加到namespace使用类似的东西namespace: "jsonapi-serializer/categories/#{:city}"以区分它们,但我还没有找到这样做的方法。

目前我有这段代码可以categories根据位置检索,然后序列化并呈现一个 json

WhileCategory.active_categoriesCategory.all_category正在缓存查询,如下所示:

active_categories:

all_category:

0 投票
2 回答
361 浏览

ruby-on-rails - 带有 jsonapi-serializers 的条件属性抛出 TypeError

我正在使用 ruby​​-2.6.0 和 Rails 6 开发 Ruby on Rails 项目。我正在开发 api 部分,我在我的应用程序中使用了 jsonapi-serializers gem。我想在序列化程序中添加条件属性。

控制器:

序列化器:

所以在这里我从上下文中的控制器传递'order_detail'。我收到以下错误: -

我遵循了jsonapi-serializer中提到的条件属性,并试图使我的“ordered_date”属性成为条件属性,但它不起作用。

请指导我如何解决它。提前致谢。

0 投票
1 回答
213 浏览

ruby-on-rails - 用于 has_many 查询的 Jsonapi 序列化程序参数

我需要过滤记录以包含与传递给序列化程序的参数的 has_many 关系。该object_method_name选项正在调用模型中的方法,但是如何将参数传递给该方法?

或者有没有办法使用 Proc 来获取 has_many 关系的记录?至少找不到任何文档。

0 投票
0 回答
109 浏览

rubygems - 更改包含参数 FastJsonapi 的关系名称

我正在使用 FastJsonapi 序列化对象。

这里的问题是,FastJsonapi 提供的 key: :posts 仅将响应中的类型显示为帖子而不是出版物。

但是对于包含参数,它仍然必须是 include[]=publications(实际表的名称)

如果我输入 ../authors?include[]=publications,它可以工作。但是对于 include[]=posts,它不会。是否可以使用 FastJsonapi 更改它?

0 投票
1 回答
374 浏览

json - 在 jsonapi 中包含具有相同 ID 和类型的多个关系的方法

我有这样的要求,即根据 id 从数据库中获取数据。该记录可以具有相同 id 和类型的多个值,因为它是历史类型。然而,我们使用的版本每次都会改变。我想要的和我得到的样本如下。我正在使用Java8,rest-apijson api在其中使用注释标记关系属性。此数据是从数据库中保存和获取的,因此要成为完全唯一的行,id 和版本组合应该是唯一的。这意味着数据库中存在具有相同 id 但版本不同的记录

我想要的是:

我得到什么:

0 投票
1 回答
93 浏览

ruby-on-rails - 未找到 JsonApi 序列化程序

我已经跑gem 'jsonapi-serializer'bundle install.

然后我尝试运行生成器rails g serializer User username id,但命令总是冻结。所以我手动创建了序列化程序:

但是当我从我那里调用它时,我UsersController得到一个错误:

这里的错误:

似乎 UserSerializer 没有加载,我不确定在哪里可以修补以使其工作。

0 投票
0 回答
19 浏览

ruby-on-rails-5 - 使用 jsonapi-serailizer 在 UTC 中渲染时间戳

我正在尝试在没有时区指示符的情况下以 UTC 格式呈现我的响应中的时间戳。我正在使用 jsonapi-serializer 序列化我的资源,但是它不提供配置时间戳格式的方法。我不得不像这样包装每个时间戳属性作为解决方法:

我正在尝试找到一种更好的方法来做到这一点,因为我正在为所有资源实现这个,而不仅仅是这个序列化器。

0 投票
0 回答
14 浏览

ruby-on-rails - 非活动记录对象与 JSONapiseriliazer gem 的自定义关系

我正在尝试为序列化器中的对象实现关系,但是该关系不是实际的活动记录关联,这意味着没有称为发布者的表。这只是我想显示为关系的用户对象的一种方法。

接着

但是我不断收到“Publisher_ex”的未定义方法“id”:字符串我怎样才能使它工作?我更希望将发布者作为一种关系而不是一种属性,还是没有办法解决它?