0

我正在寻找关于如何做我过去多次想做的事情的建议,这让我相信有一种设计模式(可能是一个宝石或例子)来告诉我如何做我想做的事情达到。

我目前在Rails中从事一个涉及多种订单类型的项目。例如,我有一个需要生成发货的基本订单。订单中的数据需要“映射”到新创建的货件。(非常简短的例子:)

Order
- 从:纽约
- 到:洛杉矶
- shipping_type:联邦快递

Shipment
- 从:洛杉矶
- 到:纽约
- shipping_type:联邦快递

OrderShipment将具有几乎相同的字段,细微差别之一是“ from ”和“ to ”字段切换。在现实世界中,这些对象中的每一个都有很多很多的领域。还有很多其他类型的订单需要有“地图”。

为了保持DRY的兴趣,有没有办法在这些订单之间创建映射,以便我可以最大限度地减少我必须编写generate_order_from(order)方法的次数?

编辑:我正在尝试创建一个类似于RestKit 的 Object Mapping的方法。我只是在 Ruby 中找不到类似的东西。

4

1 回答 1

0

订单和装运将具有几乎相同的字段……在现实世界中,这些对象中的每一个都有很多很多的字段。

也许这是你的问题?如果您有这么多字段,并且其中大多数在订单和发货中相同,您应该将公共字段拉入一个由订单和发货共享的单独对象(在数据库中,这相当于规范化您的表)。然后您只需要映射实际更改的字段(例如切换fromto字段)。

于 2012-07-25T02:36:44.667 回答