Ruby on rails 如何在ember js中获取具有所属对象的用户对象?
我有两种型号Ruby on rails 如何在ember js中获取具有所属对象的用户对象?,ruby-on-rails,ember.js,Ruby On Rails,Ember.js,我有两种型号Recipe和User。我无法获取配方中的用户对象。我做错了什么 App.Recipe.find(1).get('title') // Returns "recipe01 title". All works fine. App.Recipe.find(1).get('user') // Returns null user.js.coffee App.User = DS.Model.extend email: DS.attr('string') recipes: DS.
Recipe
和User
。我无法获取配方中的用户对象。我做错了什么
App.Recipe.find(1).get('title') // Returns "recipe01 title". All works fine.
App.Recipe.find(1).get('user') // Returns null
user.js.coffee
App.User = DS.Model.extend
email: DS.attr('string')
recipes: DS.hasMany('App.Recipe')
App.Recipe = DS.Model.extend
user: DS.belongsTo('App.User')
title: DS.attr('string')
配方咖啡
App.User = DS.Model.extend
email: DS.attr('string')
recipes: DS.hasMany('App.Recipe')
App.Recipe = DS.Model.extend
user: DS.belongsTo('App.User')
title: DS.attr('string')
我的json数组
{
recipe: {
id: 1,
title: "recipe01",
user: {
id: 1,
name: "ejiqpep",
email: "ejiqpep@gmail.com",
}
}
}
默认情况下,余烬数据期望键引用从属记录。然后,您可以侧载额外的记录,或者让Ember lazy从它们的API端点加载它们
{
recipe: {
id: 1,
title: "recipe01",
user_id: 1
},
user: {
id: 1,
name: "ejiqpep",
email: "ejiqpep@gmail.com"
}
}
但是,您也可以指示适配器嵌入记录
App.Adapter.map 'App.Recipe',
user:
embedded: 'always'
有两种类型的嵌入式记录加载embedded:“always”
,其中Ember将接收和发送嵌入对象的任何更改
App.Adapter.map 'App.Recipe',
user:
embedded: 'always'
或者embedded:'load'
,其中Ember将从JSON加载嵌入式对象,但将更改作为单独的对象保存回API
App.Adapter.map 'App.Recipe',
user:
embedded: 'load'
三个选项中你想选择哪一个取决于你自己。
嵌入式对象只是最近才实现的,并且存在一些问题(请参阅Github上的Ember数据问题),但是在不更改现有服务器的情况下,这些对象仍然可以工作