gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 22:15:36 25 4
gpt4 key购买 nike

我有一个简单的事件模型序列化器:

class ActivitySerializer < ActiveModel::Serializer
attributes :id, :title, :description, :time
has_one :category
has_one :user
end

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

{"activities":[{"id":1,"title":"Test Activity","description":null,"time":"2014-03-01T06:05:41.027Z","category":{"id":1,"title":"Sports"},"user":{"id":1,"name":"ember"}}]}

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

App.Activity = DS.Model.extend
title: DS.attr('string')
description: DS.attr('string')
time: DS.attr('date')
category: DS.belongsTo('category')
user: DS.belongsTo('user')

App.Category = DS.Model.extend
title: DS.attr('string')
activities: DS.hasMany('activity')

App.User = DS.Model.extend
name: DS.attr('string')
activities: DS.hasMany('activity')

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

最佳答案

这个技巧花了我一些时间在网上找到,我的模型需要包含 embed :ids

class ActivitySerializer < ActiveModel::Serializer
embed :ids, include: true

attributes :id, :title, :description, :time
has_one :category
has_one :user
end

或者,您可以按照此而不上面的方式进行操作。

App.ActivitySerializer = DS.ActiveModelSerializer.extend DS.EmbeddedRecordsMixin,
attrs:
user: {embedded: 'always'}
category: {embedded: 'always'}


App.ApplicationAdapter = DS.ActiveModelAdapter.extend
defaultSerializer: 'DS/app'

关于Ember.JS ActiveModelAdapter 和 Active Model Serializers 默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com