gpt4 book ai didi

ember.js - 为什么 "Assertion failed: You can only add a '故事“这段关系的记录”被抛出?

转载 作者:行者123 更新时间:2023-12-03 06:36:25 28 4
gpt4 key购买 nike

我认为我不明白如何设置belongsTo关系。我在用着ember-1.1.2 和 ember 数据 beta3。任何帮助表示赞赏。

关系定义:

App.Story = DS.Model.extend({
name: DS.attr('string'),
description: DS.attr('string'),
setting: DS.attr('string'),
status: DS.attr('string'),
chapters: DS.hasMany('chapter',{async: true}),
cast: DS.hasMany('actor', {async: true})
});

App.Chapter = DS.Model.extend({
name: DS.attr('string'),
number: DS.attr('number'),
description: DS.attr('string'),
story: DS.belongsTo('story'),
scenes: DS.hasMany('scene',{async: true})
});

路线:

this.resource('story', {path: '/story'}, function() {
this.route('edit', {path: '/:story_id'})
this.route('new')
this.resource('chapter', {path:"/:story_id/chapter"}, function() {
this.route('edit', {path: '/:chapter_id/edit'})
this.route('new')
this.resource('scene', {path:":chapter_id/scene"}, function() {
this.route('edit', {path: '/:scene_id/edit'})
this.route('new')
})
})
})

错误发生的位置:

App.ChapterNewRoute = Ember.Route.extend({

setupController: function( controller, model) {
this.controllerFor('chapter.edit').setProperties({isNew:true, content:model})
},

model: function(params) {
var chapter = this.store.createRecord('chapter')
this.store.find('story', params.story_id).then(function( story) {
chapter.set('story', story) //ERROR HAPPENS HERE
story.get('chapters').push(chapter)
})

return chapter
},

renderTemplate: function() {
this.render('chapter.edit')
}
})

最佳答案

story_id 不存在于该路线的模型 Hook 中,它仅存在于 ChapterRoute 上(又名 Story_id 未定义,您可能没有获得故事)。您可以使用 modelFor 从章节的路径中获取模型,并从该模型中获取(如果存在)。

这是一个 jsbin,显示它正在运行

http://emberjs.jsbin.com/OxIDiVU/1/edit

关于ember.js - 为什么 "Assertion failed: You can only add a '故事“这段关系的记录”被抛出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20303138/

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