我需要帮助翻译一篇关于IT技术的文章,涉及到ember data中的一对多关系保存问题。以下是需要翻译的内容:
在ember data中,我遇到了保存一对多关系的困难。我的关系如下:
App.ParameterSet = DS.Model
name: DS.attr("string")
regions: DS.hasMany("App.Region")
App.Region = DS.Model
name: DS.attr("string")
如果我要做这样的事情:
parameterSet = App.ParameterSet.find(5)
@transaction = @get("store").transaction()
@transaction.add(parameterSet)
region1 = App.Region.find(10)
region2 = App.Region.find(11)
parameterSet.set("name", "foo")
parameterSet.get("regions").pushObject(region)
@transaction.commit()
我希望您能够发送一个如下所示的带有负载的PUT请求:
然后我想看到一个带有这样负载的PUT请求:
api/ParameterSets/5
{parameterSet: {name: "foo", regionIds:[10, 11]}}
但我得到的是这个:
{parameterSet: {name: "foo"}}
我不关心子级到父级的关系,但是如果我将parameterSet: DS.belongsTo("App.ParameterSet")
添加到App.Region模型中,则会向regions url发送两个PUT请求,用于这两个新关系,这并不是我想要的。
我猜这实际上是一个多对多的关系,但我不确定是否已经支持,您有什么想法可以实现我所描述的吗?谢谢
addHasMany
只是一个占位符,期望开发人员根据需要实现它;只有后来才指定了默认行为。这确立了一种约定,但我猜测假设仍然是开发人员应根据需要自定义序列化。 - ahmacleoddirtyRecordsForHasManyChange
,请参考下面meelash的帖子。 - ahmacleod