2

との間にHABTMの関係がTopicあり、Chapterトピックの下に特定の順序で章を表示したいと思います。

例:特定のチャプターは、あるトピックの2番目のチャプターであり、別のトピックの8番目のチャプターである場合があります。

どうすればいいですか?前もって感謝します。

4

1 に答える 1

2

この場合、自明ではない多対多の関係があり、結合テーブルには、各メインテーブルへの外部キー以上のものが含まれている必要があります。

そのため、HABTMからhas_many :throughトピックとチャプターの両方に移動し、結合テーブルを、2つのメインテーブルを相互に関連付けるだけでなく、順序を列に格納する独自のモデルに変更する必要があります(ちなみに、SQLとRailsを混同するので、「order」という名前を付けないでください:-)。

標準のRailsHABTMモデルからの変換は非常に簡単ですが、ちょっとしたアドバイスがあります。以前は単なる結合テーブルであったものが実際のモデルになる理由を考えて、それを新しいモデルの名前として使用してください(および関連する新しいテーブル)。単純なHABTMでは、テーブルを作成しますchapters_topics。モデルになると、「ChapterTopic」(結果としてテーブルchapter_topics)になる可能性があります。

于 2012-12-03T17:02:08.027 に答える