gpt4 book ai didi

ember.js - 如何在 ember-cli-mirage 中创建关系?

转载 作者:行者123 更新时间:2023-12-02 08:00:40 27 4
gpt4 key购买 nike

我正在尝试在 Ember-Cli-Mirage 中创建关系。这是否可以通过简单的方式实现,或者我必须使用固定装置而不是工厂?

这些是我的模型:

任务:

export default DS.Model.extend({
taskName: DS.attr('string'),
team: DS.hasMany('team', {async: true}),
taskScore: DS.hasMany('taskScore', {async: true})
});

团队:

import DS from 'ember-data';

export default DS.Model.extend({
teamName: DS.attr('string'),
task: DS.hasMany('task'),
taskScore: DS.hasMany('taskScore', {async: true})
});

任务分数:

import DS from 'ember-data';

export default DS.Model.extend({
score: DS.attr('number'),
team: DS.belongsTo('team'),
task: DS.belongsTo('task'),
});

最佳答案

目前您需要手动分配 ID。您可以在固定文件中执行此操作,但我更喜欢使用工厂,因为它们在测试中为我提供了更多的灵 active 。

定义你的工厂,只需分配简单的属性:

// app/mirage/factories/task.js
export default Mirage.Factory.extend({
task_name(i) { return `Task ${i}`; },
});

// app/mirage/factories/team.js
export default Mirage.Factory.extend({
team_name(i) { return `Task ${i}`; },
});

然后使用工厂覆盖来关联测试中的数据:

// tests/acceptance/some-test.js

test('', function() {
let task = server.create('task');
server.createList('team', 5, {task_id: task.id});
});

这会在您的 Mirage 数据库中创建相关数据。现在,如果您的路由设置为返回关联数据,那么您应该已全部准备就绪。

关于ember.js - 如何在 ember-cli-mirage 中创建关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31761226/

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