我正在尝试选择正确的关联方法。
我有一个post模型和一个category模型。我希望一个帖子属于许多类别和类别有许多模型。
api文档说
如果您需要将关系模型作为自己的实体来使用,请使用has_many:through。当使用遗留模式或从不直接使用关系本身时,请使用has_and_belongs_to_many。"
我不太明白他们所说的关系模型
是什么意思我将要做的事情包括。
- 显示与文章相关的类别
- 显示与一个类别相关联的所有帖子。
我的问题是,哪个协会将允许我做以上?我更喜欢has_and_belongs_to,因为它似乎是一个直接关联
谢谢
两者都可以,但是has_and_belongs_to_many更容易设置并且使用更少的代码。
参考我对这个问题的回答以获得一些帮助。
关于关系模型,根据你的描述,你不需要它。但是为了让您了解它是什么,您需要在数据库中使用三个表来实现多对多关系。中间的表称为连接表,您可以在我上面提到的答案中看到一个。如果您为连接表创建一个模型,那就是一个关系模型。这样做的好处是,你可以用它来保存你认为对关系重要的信息。缺点是额外的复杂性(有时值得),然后应该使用更详细的has_many:through方法。