Ember.js找到()与params

时间:2013-07-08 11:01:42

标签: ruby-on-rails api ember.js

我有一个Rails API,它使用以下JSON响应:

/用户/ 1

{
    "id": 1,
    "email": "sjobs@apple.com"
}

/用户/ 1?嵌入=角色,存储

{
    "id": 1,
    "email": "sjobs@apple.com"
    "store": {
        "id": 1,
        "name": "Apple Store"
    },
    "role": {
        "id": 1,
        "name": "Owner"
    }
}

是否可以决定使用Ember.js获取哪些关系 - App.User.find(1)?我已经尝试了App.User.find({id:1,embed:'role'}),但是它将GET请求作为/ users?id = 1& embed = role发送到Rails控制器中的索引操作。

有没有更好的方法来解决这个问题?我有完全访问权限来修改API。对每个API请求进行侧载似乎有点矫枉过正,如果我可以根据查询参数确定关系,我会很棒。

1 个答案:

答案 0 :(得分:2)

  

有没有更好的方法来解决这个问题?

我认为假设您使用RESTAdapter的最佳选择应该是将您的侧载加载为嵌入式,例如:

DS.RESTAdapter.map('App.User', {
  role: { embedded: 'always' },
  store: { embedded: 'always' }
};

这种方式rolestore保存在同一记录中,因此不会产生单独的GET请求。

嵌入的两个可能值是:

始终:加载时嵌入子记录,并将其保存在同一记录中。

加载:加载时会嵌入子记录,但应将其保存为独立记录。为了使其工作,子记录必须具有ID。

希望它有所帮助。