小编flo*_*ish的帖子

Ember Data中的类继承有很多关联

我试图让Ember Data使用与类继承的hasMany关联.

Ember代码中的示例:

var Person = DS.Model.extend({
  name: DS.attr('string'),
  animals: DS.hasMany('Animal')
});

var Animal = DS.Model.extend({
  name: DS.attr('string'),
  owner: DS.belongsTo('Person')
});

var Dog = Animal.extend({
  isBarking: DS.attr('boolean')
});

var Cat = Animal.extend({
  isMeowing: DS.attr('boolean')
});

var fred = Person.createRecord({name: 'Fred'});
var ed = Dog.createRecord({name: 'Ed', isBarking: true});
// This gives:
// Error: assertion failed: You can only add records of Animal to this relationship.
fred.get('animals').pushObject(ed);
Run Code Online (Sandbox Code Playgroud)

我希望能够animals为每个人添加Cat和Dog实例.

Mongoid为Ruby/Rails提供的内容给出了如何实现它的一个例子:

http://mongoid.org/en/mongoid/docs/documents.html#inheritance

我知道Mongoid的继承实现(_type每个记录的自定义属性)可能对Ember Data来说太具体了.

如果有人能给我一个提示是否可以使用Ember Data进行上述提示,如果可以,我将如何实现这一点,我们将不胜感激.如果这是Ember Data根本不支持的东西,那也是我想要的答案.

我正在运行Ember 1.0.0-pre4和几天前的自定义Ember Data构建.

ember.js ember-data

9
推荐指数
1
解决办法
932
查看次数

Mongoid embeds_many:不保存就推送文档,以保留脏状态

在Mongoid中,将文档推入embeds_many关系会自动将文档持久保存到数据库中。通常,这很好,但是当我需要跟踪对嵌入式文档的更改时遇到了问题。

假设您有两种模式:

class List
  include Mongoid::Document
  embeds_many :items
  field :title
end

class Item
  include Mongoid::Document
  embedded_in :list
  field :name
end
Run Code Online (Sandbox Code Playgroud)

这发生在.changes属性上:

list = List.new(title: 'List title')
list.save  #list is now persisted
item = Item.new(name: 'Item name')
item.changes  #returns Hash with {'name' => [nil, 'Item name']}
list.items << item  #saves item to database under the hood
item.changes  #returns empty Hash, because item was autosaved with list
Run Code Online (Sandbox Code Playgroud)

我可以item.previous_changes用来检查在将项目推入列表之前所做的更改,但是在我的特定情况下,这会给我带来各种麻烦,使事情难以管理。

我想要实现的是能够初始化Item文档,然后将其添加到list(通过<<push),而无需立即将其持久化。

我知道Mongoid确实提供了一种建立 …

mongoid

5
推荐指数
2
解决办法
2240
查看次数

标签 统计

ember-data ×1

ember.js ×1

mongoid ×1