私が持っているこれらのテーブル:基本的にマルチブログサイトのモデル作成方法は?
**Sites**
:has_many :blogs
:has_many :pages
**Blogs**
:belongs_to :site
**Pages**
:belongs_to :site
:belongs_to :blog
は、私はどちらか、このようにルートをブログにサイトに関連するまたは関連しているページを作成することができるようにしたい:
/blogs/1/pages/1
/sites/1/pages/2
私の現在の設定では、私のページテーブルはblog_idとSITE_IDためFOREIGN_KEYを持っています - と私はこれをやって考えていた:
ページはfoが作成されている場合(ブログに属していないことを意味する)、blog_id =をNULLに設定しますが、それに応じてsite_idを設定します。
しかし、ブログ(既にサイトに属している)関連SITE_IDその後、私はサイトのページのリストをしたい場合は
をblog_id:私はちょうどすべてのNULL blog_idsのためのページテーブルを照会することができ、私はページをブログしたい場合、私はとの関係を介してそれらを取得しますブログはすでにあります。
更新:私は以下の回答を受け入れましたが、 "多相関連"を使用することを提案しましたが、これは単一テーブル継承を使用して行うこともできますか?もしそうなら、どの方法が良いですか?
ありがとうございました。