Ruby on rails 订单和项目的HMT或HABTM
对rails来说是相当陌生的,并且在继续之前尝试了解要使用哪些关系 我有两种型号:Ruby on rails 订单和项目的HMT或HABTM,ruby-on-rails,ruby,Ruby On Rails,Ruby,对rails来说是相当陌生的,并且在继续之前尝试了解要使用哪些关系 我有两种型号:订单和项目。这是一种多对多关系,但我不确定使用哪种关系 订单可能有交货时间、物品数量等 最后,如果使用HMT,您会将加入订单和项目的模型称为什么?这似乎是HABTM的一个经典案例,并且是完美的。选择取决于您是否需要连接模型本身的任何其他数据或逻辑。如果是这样,那么使用HMT,在这里您将创建第三个活动的_记录模型作为联接表。你可以给它取任何你想要的名字。但是HABTM似乎适合您,您只需要在迁移中设置带有默认名称(it
订单
和项目
。这是一种多对多关系,但我不确定使用哪种关系
订单可能有交货时间、物品数量等
最后,如果使用HMT,您会将加入
订单
和项目
的模型称为什么?这似乎是HABTM的一个经典案例,并且是完美的。选择取决于您是否需要连接模型本身的任何其他数据或逻辑。如果是这样,那么使用HMT,在这里您将创建第三个活动的_记录模型作为联接表。你可以给它取任何你想要的名字。但是HABTM似乎适合您,您只需要在迁移中设置带有默认名称(items\u orders
)的连接表,rails将为您处理所有其他事情
class Order < ActiveRecord::Base
has_and_belongs_to_many :items
end
class Item < ActiveRecord::Base
has_and_belongs_to_many :orders
end
类顺序
如果您需要了解有关特定订单上项目关系的任何其他信息,您需要HMT
如果您的商品在未来改变价格,您是否想知道它们在过去的订单中的售价是多少
在这种类型的需求中,我总是有许多订单的“行项目”记录,行项目实例属于该项目和订单,并记录该订单的定价和/或数量
HMT和HABTM?很少有时候,您只需要多对多,因此我几乎总是使用HMT,以获得向关联添加更多信息的额外功能。您是否需要能够倒退:给定一个项目,它的显示顺序是什么?如果是这样的话,这就是HABTM的经典案例,这里有一个完美的例子:默认的联接表将命名为items\u orders(字母顺序),使用哪一个@Daiku在移动设备acc上表示抱歉-我不需要返回给定的项目。只需查看订单中有哪些项目。我应该使用HMT吗?如果我使用HMT,你会怎么称呼这个模型?@Emma这里是一个简单的Rails实现:你可以看看更高级的例子,如果你想看到比你所希望的更多的东西。