我在主题
和章节
之间有HABTM关系,现在我想在主题下按特定顺序显示章节。
例如:特定章节可能是一个主题下的第 2 章,也可能是另一个主题下的第 8 章。
我该怎么做?提前致谢。
最佳答案
在这种情况下,您有一个不平凡的多对多关系,连接表需要包含的不仅仅是每个主表的外键。
因此,您需要在主题和章节上从 HABTM 迁移到 has_many :through
,并将连接表更改为其自己的模型,该模型不仅关联两个主表彼此之间,而且还将顺序存储在列中(顺便说一下,您不应该将其命名为“order”,因为它会混淆 SQL 和 Rails :-)。
从标准 Rails HABTM 模型进行转换非常简单,但有一点建议:想一想是什么使曾经只是一个连接表的模型成为真正的模型......并将其用作新模型的名称模型(以及关联的新表)。在简单的 HABTM 中,您将创建一个表 chapters_topics
,当它成为模型时,它可能是“ChapterTopic”(生成表 chapter_topics
)。
关于ruby-on-rails - 如何按照特定顺序显示查询到的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687906/