ACL コンポーネントによって生成されたテーブル (aros、acos) と、たとえば CakeDC による Favorites プラグインを見るfavorites
と、フィールドFavorite.user_id
、Favorite.model
およびを含むテーブルが表示されますFavorite.foreign_key
。
最後の 2 つの組み合わせは、古き良きものに取って代わります (価値があるとFavorite.post_id
仮定します)。これはある意味で、片側に動的なモデル名を持つ HABTM ピボット テーブルです。
ここで一般的で便利なアイデアを見ることができますが、そのアプリケーションについてもっと知りたいです。model
'Post'
私の質問:
- このパターンに名前はありますか?
- これはコード的にどのように機能しますか? 抽象的な原理はわかりますが、これを機能させるにはどのようなモデルコードが必要ですか? クエリのパッチワークが必要ですか、それとも 1 つのクエリでスムーズに実装できますか? 例: システム内のお気に入りとしてマークされたすべての投稿と、それに関連するユーザーを一度に取得したいと考えています。
- そして、これは両方の方法で機能しますか?(Post モデルと User モデルの両方からクエリを実行)
このパターンを処理するために動作を配置する抽象化に取り組みたいと思います。私は CakeDC コードを調べましたが、原理を理解できませんでした。それは私の現在の知識には少し難解です。したがって、ここで私の質問です。
よろしく、
バート