2016-11-08 395 views
0

如果你想建立一个属于关联或的hasMany关系的模型,你可以做到以下几点:灰烬模型嵌套的hasMany或属于关联关系

export default Model.extend({ 
    "client": DS.belongsTo('client',{ 
     async: true 
    }), 
    "days": attr(''), 
    "cars": DS.hasMany('car',{ // somehow nest within days 
     async: true 
    }) 
}); 

但是,如果我有一个动态的形式?例如,我有一个充满空间的停车场。我创建了一个新的记录,将客户分配到我的停车场。然后我开始在一周的不同日子分配空间。在每个空间内,我想知道什么车停在某一天的某个特定时间允许的地方。

据我所知,在JSON输出会是这样的:

{ 
    "client" : "-EADn0NoAq65GRGOU-oQ", 
    "days" : [ { 
    "date" : "2016-11-11", 
    "times" : [ { 
     "when" : "morning", 
     // want to somehow define a hasmany for which cars are being parked and in which lot number here 
    } ] 
    }, { 
    "date" : "2016-11-12", 
    "times" : [ { 
     "when" : "afternoon" 
     // want to somehow define a hasmany for which cars are being parked and in which lot number here 
    } ] 
    } ] 
} 

它看起来像一个模型中,你只定义了“顶级”。你如何定义一个超越顶层的关系?我希望能够访问特定的一天,然后时间...看看哪些车停在哪里,并与hasMany的关系,然后我可以从另一车型的车内拉出信息......车型,车型,微米,颜色等

+1

创建更多模型;) 也许你应该有一个模型'天'和一个'时间'与你的根模型'days:hasMany('day')'然后在当天'times:hasMany('time “)'。 但是,您会考虑如果代表时间和日期的timslot的单个模型可能是更好的解决方案。 – Lux

+0

@lux我希望可能有一种“更容易”的方式,因为这可能会创建许多不必要的记录,而这些记录不会与其他任何内容相关联或需要自行访问。 – Matt

+0

那么你*可以*不使用转换并输出纯JSON。但我会建议使用模型。 – Lux

回答

0

如果我正确理解这一点,我会有一个时隙模型。

每个时间段都有日期和时间,属于客户端和汽车。 您应该能够确定哪些车辆在哪里,哪些客户在任何给定时间。

模型/ timeslot.js

export default Model.extend({ 
    "client": DS.belongsTo('client',{ 
     async: true 
    }), 
    "car": DS.belongsTo('car'), 
    "bayNumber": DS.attr('number'), 
    "day": DS.attr('date'), 
    "time": DS.attr('string') 
}) 

不能完全确定,如果这是你要找的,但希望它帮助。

+0

基本上,我想要一个带按钮的表单,我可以在这些地点添加停车位,每天可以添加更多时间,并且可以在这些时间内添加......我可以添加详细信息,包括所有者和/或特定汽车从另一个模型。 '问题'是创建另一个时隙模型,要求我'创建这些记录',即使它们没有最终确定。换句话说,如果我们将博客帖子与评论进行比较......我想在他们成为属于博客帖子的实际“记录”之前添加一大堆评论。 – Matt