假设我有两个表:TradeSetting
和TradePrices
。多个TradeSettings可以使用一个TradePrice。在Express中我想列出所有TradeSettings和TradePrice,因此我对两个表使用sequelize的findAll
并将结果传递给我的玉视图。
我的问题:
如何在不为我的玉石视图的每次迭代创建新选择的情况下为相应的TradeSetting输出合适的价格:
each tradeSetting in tradeSettings
td #{tradeSetting.Name}
td #{tradeSetting.PriceId}
td // the according price for this tradeSetting
我想过使用类似关联数组的东西,以便我可以用#{TradePrice[tradeSetting.PriceId]}
输出它,但我不确定这是否可能以及我需要做什么?
我的两个表看起来像这样(简化):
TradeSettings( Id ,名称, PriceId )
TradePrices( Id ,价格)
旁注:我还没有在我的数据库中使用外键,但我可以在那里添加外键并在必要时相应地调整模型。
答案 0 :(得分:1)
通过遍历TradeSetting
来预处理您的数据,为每个TradeSetting找到匹配的TradePrice,并将其作为新属性保存到每个TradeSetting中。
之后,每个TradeSetting都有正确的TradePrice作为属性可以轻松访问(就像您访问Name或PriceId一样)。
然后,您可以轻松地遍历您的TradeSettings并在您的第三个td
行中(来自您的示例),您可以使用#{tradeSetting.TradePrice.Price}
编辑:您提到您正在使用续集,如果可以在您的数据库中设置外键,那么您也可以使用它。 如果一切设置正确,请尝试
TradeSetting.findAll({ include: [TradePrice])
然后在您的玉石模板中
tradeSetting.get('TradePrice').get('Price')