在"has_many :through"和"has_and_belongs_to_many"之间选择导轨



我正在尝试选择正确的关联方法。

我有一个post模型和一个category模型。我希望一个帖子属于许多类别和类别有许多模型。

api文档说

如果您需要将关系模型作为自己的实体来使用,请使用has_many:through。当使用遗留模式或从不直接使用关系本身时,请使用has_and_belongs_to_many。"

我不太明白他们所说的关系模型

是什么意思

我将要做的事情包括。

  1. 显示与文章相关的类别
  2. 显示与一个类别相关联的所有帖子。

我的问题是,哪个协会将允许我做以上?我更喜欢has_and_belongs_to,因为它似乎是一个直接关联

谢谢

两者都可以,但是has_and_belongs_to_many更容易设置并且使用更少的代码。

参考我对这个问题的回答以获得一些帮助。

关于关系模型,根据你的描述,你不需要它。但是为了让您了解它是什么,您需要在数据库中使用三个表来实现多对多关系。中间的表称为连接表,您可以在我上面提到的答案中看到一个。如果您为连接表创建一个模型,那就是一个关系模型。这样做的好处是,你可以用它来保存你认为对关系重要的信息。缺点是额外的复杂性(有时值得),然后应该使用更详细的has_many:through方法。

相关内容

  • 没有找到相关文章

最新更新