问题标签 [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.
ruby-on-rails - 使用 active_model_serializers 序列化权限(例如 CanCan)
如何使用 active_model_serializers 序列化权限?我无权访问模型和序列化程序中current_user
的can?
方法。
ruby-on-rails - josevalim / active_model_serializers 控制器参数错误
我正在玩 Jose Valim 的 active_model_serializers Gem。
我正在尝试在我的控制器中调用自定义序列化程序,但它看起来:json
没有ActiveModel::ArraySerializer
按应有的方式使用。
当我default active_model_serializer
在控制器中定义时,序列化程序工作正常;但是,当我在控制器中调用这样的自定义时:
我收到以下错误:
我正在使用 Ruby 1.9.2 和 Rails 3.2.7。感谢任何帮助,因为我需要为任何给定模型创建一些不同的序列化程序。
谢谢!
ember.js - 序列化日期属性
我正在使用 active_model_serializers 和 ember.js。我的一个模型有一个日期属性。在 Rails 中,日期属性以“YYYY-MM-DD”的格式序列化。
问题; 当 ember-data 使用 javascript Date 构造函数反序列化日期时,它假定一个“不正确的”时区。
*不正确不是最好的词,但它是不正确的,因为我希望它默认为当前时区。DS.Model 日期属性解析日期 (YYYY-MM-DD) 不正确
我认为 active_model_serializer 应该采用 date 属性并将其转换为 iso8601 格式。
有没有办法告诉 active_model_serializers 如何序列化所有日期对象?还是我应该在 javascript 中修复时区问题?
ruby-on-rails - 活动模型序列化器 belongs_to
这个问题与 AMS 0.8 相关
我有两个模型:
和两个序列化器:
当 aUserCombination
被序列化时,我想嵌入整个主题子树。
当我尝试使用此设置时,我收到此错误:
我尝试将其更改UserCombinationSerializer
为:
在这种情况下,我没有收到任何错误,但是以subject
错误的方式序列化了 - 不使用SubjectSerializer
.
我的问题:
- 我不应该能够在序列化程序中使用belongs_to 关系吗?
- 如果没有 - 我怎样才能获得想要的行为 - 使用 SubjectSerializer 嵌入主题树?
ember.js - 我们可以对 Ember 数据使用多态关系吗?
我们有多种类型的“小部件”,可以在组中使用,并且在 Rails 中,我们有一个多态关系来返回所有小部件,无论类型如何。
例如,我们可以调用@group.widgets 来返回所有不同类型的小部件,而不管可能正在使用什么。
如果我将 polymorphic => true 添加到序列化程序。例如:
我似乎得到了一个递归循环,它以SystemStackError (stack level too deep)结束。
我在这里错过了一个技巧,还是这只是一些还不能完成的事情?
谢谢,丹
ruby-on-rails - 在 Rails 中使用 ActiveModel::Serializer - JSON 数据在 json 和 index 响应之间存在差异
我正在使用active_model_serializers
gem 来控制序列化数据,并看到一些奇怪的行为。我的代码如下所示:
模型和序列化器
控制器
视图(app/views/users/index.html.erb)
现在,当我渲染视图时,我看到full_name
我的数据中缺少该属性(通过模型中的方法生成):
当我访问/users.json
(我resources :users
的routes.rb
文件中有)时,我看到了正确的 JSON:
我看不出我可能做错了什么——任何输入都会有所帮助。谢谢。
ruby-on-rails - Rails/Ember - active_model_serializer - 侧载时未定义的方法“对象”
我正在尝试为 Ember 应用程序在 active_model_serializer 中侧载数据,并在尝试包含对象时得到 NoMethodError:
#Email:0x00000100d33d20 的未定义方法“对象”
它仅在 :include => true 设置时发生,如下所示:
我的模型如下所示:
我的控制器如下所示:
提前致谢。
ruby-on-rails - ActiveModel::Serializer:如何从分层 Rails 模型中收集验证错误?
我有一个分层的 Rails 模型。验证后,模型的每个实例都有一个errors
属性,该属性是验证后的错误数组。这些错误需要序列化为与生成错误的主模型的层次结构相匹配的 JSON 对象。有没有办法利用ActiveModel::Serializer
代码,以便我可以使用已在ActiveModel::Serializer
子类中配置的关联,以便我可以遍历层次模型并将错误提取到对象中以作为 JSON 发送给客户端?
这是我的分层模型:
当样本值超出范围时,我想生成以下 JSON
也许ActiveModel::Serializer
子类可以直接做到这一点。但如果没有,当我创建错误对象时,是否有某种方法可以检查序列化程序中定义的关联?
ruby-on-rails - 具有嵌入式 ID 和侧载的 Ember-Data 和 Active Model Serializers 的 has_many 配置
我知道 Ember-Data 在设计上应该与 Active Model Serializers 兼容,但它们似乎在序列化has_many
与嵌入式 ID 的关系方面不同步。
例如,序列化器
生成 JSON
但是 Ember Data 中的默认配置,
期望注释关联在comments: [...]
没有_ids
后缀的情况下被序列化(请参阅Ember.js 指南的 REST 适配器部分的关系子部分)。
我尝试了以下解决方法:
它可以工作,但是embed :ids, :include => true
现在添加以启用侧面加载什么都不做,因为 AMS 不知道它是一个关联。
编辑:我正在使用active_model_serializers (0.6.0)
gem 和 Ember-Data 修订版 11
ruby-on-rails - Rails + Ember.js + 设计自由记者应用程序 - 数据范围
抱歉,我在 ember.js-land 待了这么久,我在摸索 Rails + active_model_serializers JSON api 基础知识。
因此,假设我是一名自由记者,正在构建一个应用程序,作者可以通过单个用户帐户将文章发布到不同的公司特定网站。
我正在使用 Rails 3+、Devise、Active_Model_Serializers、Ember-Data 和 Ember.js。
我想设置一个流程,用户访问该站点,登录(非常容易使用设计)并被重定向到一个 Rails 页面,他可以在其中选择他想去的公司的仪表板(只需单击一个链接) .
现在是棘手的部分。当他单击特定公司的链接时,他应该被引导到一个 Rails 视图,该视图包含一个 ember 应用程序,其序列化范围设置为 current_company_membership 或 current_company 而不仅仅是 current_user。
如何创建一个 rails 或 active_model_serializers 方法,将数据范围仅限于 current_company_membership 指定的 current_company,然后将此数据传递给 ember 应用程序?
另外,作为奖励,我需要 current_user 的姓名和电子邮件地址 - 我如何将这些信息也传递给 ember 应用程序?我看过这个花花公子的文章,但是在尝试仅通过 company_membership 而不是 current_user 来确定数据范围时,无法使其正常工作。
任何帮助都是极好的!如果需要,我会添加更多细节和代码,但我觉得我在这里忘记了一些非常简单的事情。