私は、構造的完成に近づいているサイトを持っています。基本的には、ユーザーと写真で構成されています。しかし、PhotosにはたくさんのHABTM関係があり、そのほとんどはさまざまな種類のタグで、その他はカテゴリ、コレクションなどです。レールのための統合されたCMSベースオフモデル
クライアントはコンテンツに基づいて条件付きのCMSを使用できるようにしたいと考えていますさまざまな宣伝目的やその他の目的で表示されます。たとえば、ユーザーがカテゴリ「Leprechauns」を閲覧している場合、彼は聖パトリックの日や何かに関するhtmlコンテンツを表示することができます。利用可能であれば、ブラウジングユーザーの名前を簡単に含めることもできます。どのような場合には、何らかの種類のテンプレートシステムを持つのが良いでしょう。これを難しくする部分は、サイドバーの300x300のスペースのような小さなHTMLブロックであり、主なコンテンツではないということです。
私は製油所を調べましたが、完全な解決策ではないようです。また、最初からビルドすることも考えましたが、Railsで認識可能なオブジェクトとして動的に生成されたページ(新しいカテゴリなど)をどこから扱うかはわかりません。私はHABTMの関係よりもグローバルにしていきたいと思っていますが、それは私がどこに向かうかのように見えます。理想的には、彼はいくつかのHTMLを作って、「これをxとyカテゴリページとbとzコレクションページ、そしてタグFooとタグバーと私のホームページに表示したい"
提案がありますか?私は宝石を見つけたり自家製の頑強なスタートをすることができます。
私は、次のようないくつかのモデルを設定すると思ってい
UPDATE:
cms_content
はHTMLが含まれます:cms_contents ============ id:integer contents:text timestamps cms_associations ================ id:integer cms_content_id:integer model_id:integer record_id:integer #optional secondary_model_id:integer #optional secondary_record_id:integer #optional models ====== id:integer name:string
。
cms_associations
はhas_many, :through
models
を使ってActiveRecordのモデルは、CMSコンテンツがrecord_id
が指定されていない場合record_id
がであれば、それはモデルインデックス- と関連付け
- に関連付けることができモデルが含まれていますでしょう与えられたモデルのレコードに関連付けられています id
- 二次情報が与えられている場合、他の多対多の組み合わせが作成されます の関係
例:
User has_many :photos
Browsing Photos for User(10)
model_id => #User model Id
record_id => 10
secondary_model_id => #Photo model id
だからあなたは、このような広告のために支払うことができる機能を備えたユーザーや企業などの特定のユーザーのために写真を閲覧するためのコンテンツをカスタマイズすることができます。
この構造に関するご意見はありますか?
これは私が考えていたものですが、私は(私はどこかに20〜25の周りに考え出したと思います)HABTMのスルーは、テーブルを結合していますが、その後関連付けるために、いくつかのjimmyingがあるように必要がありますだけでなく、モデルを直接使用します。 (例えば、すべてのカテゴリのブラウズ)、またはユーザ「Baz」のタグ「foo」の閲覧のような特別な条件。それにかかわらず、最後のものは明らかに複雑であるかもしれない、私は考えている。 –
1)実際にあなたのhtmlチャンクに関連付ける他の20〜25のテーブルがありますか?あなたはカテゴリ、タグ、そして多分何かを言及しました。もしあなたがそうしても、私はそれが大きな問題だとは思わない。 – instinctious
2)これらのユーザーにこのタグのhtmlchunkを表示するなどの特別な条件については、このチャンクをタグに関連付けるhabtm結合テーブルで、作成者のIDを含むuser_idsフィールドを追加するだけですチャンクは作成中に選択されます。次に、単純な論理ステートメントを使って、誰がこのタグでこのチャンクを見るはずかを決定します。 – instinctious