0

ブログのように機能するRailsアプリがあり、タグ付けシステムを使用して投稿を分類しています。

「関連する投稿」機能に似たものをいくつかの投稿に追加する必要があります。

たとえば、投稿1が投稿4に関連している場合、投稿1の表示アクションの最後に投稿4の画像をレンダリングし、同時に投稿4の最後に投稿1の画像をレンダリングします。

私の考えは、投稿モデルとHABTMの関係を持つ「リンク」モデルを作成することですが、「投稿」に「リンク」を介した多くの「リンク」があるかどうかはわかりません。どちらのアイデアも同じ結果になるようですが、どちらのアプローチを選ぶべきですか?

4

1 に答える 1

1

HABTMは本質的に非常に単純であり、モデルを結合する外部キーペアのテーブルだけがあります。

通常has_many、throughは、その結合関係に属性を追加する必要がある場合、および/または結合を独自のモデルとして扱う必要がある場合に使用されます。

たとえば、あなたの場合、リンクを作成された順序で表示したい場合があります。これを行うには、関係に作成タイムスタンプを保存する必要があります。このためには、単純なHABTM結合テーブルでは不十分であるため、スルーに切り替えて、結合をカプセル化has_manyするモデルを作成します。Linking

例を続けるためにLinking、ファーストクラスのリソースを作成し、リンクされたものとは別にそれらを編集/追加/削除できるページを作成することもできますPost

has_many個人的には、ほとんどの場合、いつも使い切っています。それは私にはすっきりしているように感じます(受け入れるかオーバーライドする自動命名テーブルの魔法はなく、リンクはより目立ちます)、そして私は非常に頻繁に、参加関係が一級市民に値することを発見します。

于 2012-11-11T04:40:51.937 に答える