问题标签 [active-model-serializers]

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 回答
323 浏览

ruby-on-rails - 活动模型序列化程序是否与 JSONP 一起使用?

如果不是,我怎样才能使它与我的 AJAX 请求兼容 JSONP?

编辑:看起来我不清楚我想要实现的目标。例如,假设我有一个包含 id、作者、标签和内容等属性的 Post 类。现在,我将使用以下 ActiveModel::Serializer 来编码 JSON 响应:

现在在控制器中,我会做类似的事情

生成一个看起来像这样的 JSON 文件

现在我的目标是使用 JSONP,这样当有人在请求中传入 jsoncallback 参数时(例如 GET '/posts?jsoncallback=callback_function'),我将能够生成以下内容:

目前,我在 Post 对象上使用 to_json 并将结果存储到名为 @posts_json 的变量中,然后在控制器中将 Content-Type 指定为 text/javascript,并呈现如下所示的 html.erb 文件:

我相信你会同意这个解决方案真的很难看,问题是由于我在控制器中使用的 to_json 方法,它开始给我带来问题。

因此,我想使用 ActiveModel::Serializer 来获得相同的功能。我该怎么做?

0 投票
1 回答
585 浏览

ember.js - 序列化 async hasMany 关系

我对 EmberJS 还很陌生,晚上的大部分时间我都在摆弄,试图在我正在开发的新应用程序中坚持一些 hasMany 和多对多的关系。

我正在使用 Ember DataActiveModelAdapter将其连接到我正在使用的 rails 后端ActiveModelSerializers

我正在使用我正在使用的以下版本的 Ember 和 Ember Data。

我遇到的基本问题是,在保存记录时,关联 ID 没有被发送回服务器。

我深入研究了ActiveModelSerializer 源,发现它跳过了 hasMany 序列化

我提出了以下基本解决方案,到目前为止它正在工作,但我想知道是否有遵循 Ember 约定和最佳实践的更清洁的解决方案。

0 投票
1 回答
6934 浏览

ruby-on-rails - prettify JSON output of active-model-serializer in rails console

I am testing active-model-serializer output in the rails console and I am looking for a way to prettify the output. The the only solution I have found so far is:

That seems like a roundabout approach. Is there a "better way"?

0 投票
2 回答
2797 浏览

ember.js - Ember.JS ActiveModelAdapter 和 Active Model Serializers 默认行为

我有一个简单的活动模型序列化器:

我也有类别和用户序列化程序,它们按预期工作。我得到这个有效载荷:

但是,它们似乎没有加载到 ember 中。

当我检查 ember 检查器时,未加载数据。ActiveModelSerializer 期望什么样的格式?它加载一个活动,但不加载类别或用户属性。

0 投票
4 回答
4148 浏览

ruby-on-rails - Active Model Serializer,测试使用哪个序列化器来渲染响应

我正在使用活动模型序列化程序来呈现来自 rails 控制器的 JSON 响应。

我有一个这样的控制器动作:

我希望能够测试在我的 Rspec 控制器测试中使用了哪个序列化程序。是否可以从测试中获取对序列化程序的引用?

更新:

我不认为这是对序列化程序的正确使用。我现在在序列化程序本身中有逻辑来有条件地包含属性。控制器不应该真正关心使用哪个序列化程序。

0 投票
1 回答
217 浏览

ruby-on-rails - 分配前的 ruby​​/rails 变量范围

更新:

谢谢大家,跟着这个:

有没有更好的方法来处理这里 res 属性的分配,以保持它可用于渲染调用?总的来说,我只是想知道如何改进这种非常臭的方法。

0 投票
1 回答
1082 浏览

ruby-on-rails-4 - 使用 Active Model Serializers,如何渲染部分?

我正在创建一个新闻源并使用 Active Model Serializers gem 设置一个 JSON 响应。我想渲染一个常规的 ERB 部分并将其作为 JSON 中的属性之一。

控制器/posts_controller.rb:

序列化程序/post_serializer.rb:

不幸的是,我的视图有一些使用帮助程序和请求对象(url)的代码,当我尝试这样做时出现错误。

事件/_event.html.erb:

undefined method `host' for nil:NilClass

有什么解决这个问题的好方法的想法吗?

0 投票
1 回答
383 浏览

ruby-on-rails - 即使没有任何变化,activeModel::dirty 记录也会发生变化

我正在使用 ActiveModel::Dirty 库。我有以下代码:

如果用户更改表单中的某些内容,此方法会更改控制器的行为。问题是其中一个字段是日期时间,并且由于某种原因,previous_changes 认为日期时间每次都会更改,无论是否更改。

控制台甚至告诉我没有变化。以下是上述 puts 语句在控制台中产生的内容:

我的基本问题是为什么 previous_changes 认为每次都有变化,我该如何解决?

0 投票
1 回答
76 浏览

activerecord - 如何从 ActiveRecord 呈现 JSON 相关数据包括

如何从包含查询中呈现 JSON 格式的网格?下面的代码只输出文件夹。

0 投票
1 回答
791 浏览

ruby-on-rails - 在 Mongoid 嵌入式类上不调用 Rails 序列化程序

我有两个 mongoid 模型,我们称它们ModelModelChild. 这是关系Model

这是关系model_child

问题是它ModelSerializer被称为,但ModelChildSerializer不是。我做错了什么还是设计使然?如果它是设计使然,我怎样才能让它调用ModelChildSerializer.

编辑:

控制器的渲染调用:

和代码ObjSerializer