0

私は、構造的完成に近づいているサイトを持っています。基本的には、ユーザーと写真で構成されています。しかし、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_associationshas_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 

だからあなたは、このような広告のために支払うことができる機能を備えたユーザーや企業などの特定のユーザーのために写真を閲覧するためのコンテンツをカスタマイズすることができます。

この構造に関するご意見はありますか?

答えて

0

それはまるで全能のライアン・ベイツが私を探しているかのようですが、最新のRailscastはCopyCopterにあります。これは私が探しているものを正確に行い、別のアプリとして実行するので、私の主なアプリを動かす心配はありません。私はスクリーンキャストを見ている人は、かなり印象的だと思う人にお勧めします。

http://railscasts.com/episodes/336-copycopter?autoplay=true

2

実際にはそれほど複雑ではありません。

  • あなたはhtmlchunksに関連付けたいと思いますすべてのオブジェクトのための新しいDB内のオブジェクト、名前を付けhtmlchunks
  • を導入し、はテーブルを結合を作成し、これはあなたが何をすべきかであります関係
  • は、彼らが時間があるのか​​を認識方法で(htmlchunksとの関連付けを持つオブジェクトのための)サイドバーを変更HABTMを定義しますtmlchunkは、この特定のオブジェクトに関連付けられています。たとえば、htmlchunkと呼ばれる「April Fools 'Day」という単純なhtml段落が含まれているとします。サイドバーでは、@ category.htmlチャンクのようなものを尋ねるだけですその結果に応じて出力する。あなたは理想的にはすべてを部分的に配置することができます
  • htmlchunksを作成するには、シンプルなエディタを使用して、任意の数のタグやカテゴリを選択するだけです。あなたはコメントで、さらに質問がある場合は、私に教えてください

作成プロセスの間にそれらとhtmlchunks間のHABTMのエントリを作成したいです。

+0

これは私が考えていたものですが、私は(私はどこかに20〜25の周りに考え出したと思います)HABTMのスルーは、テーブルを結合していますが、その後関連付けるために、いくつかのjimmyingがあるように必要がありますだけでなく、モデルを直接使用します。 (例えば、すべてのカテゴリのブラウズ)、またはユーザ「Baz」のタグ「foo」の閲覧のような特別な条件。それにかかわらず、最後のものは明らかに複雑であるかもしれない、私は考えている。 –

+0

1)実際にあなたのhtmlチャンクに関連付ける他の20〜25のテーブルがありますか?あなたはカテゴリ、タグ、そして多分何かを言及しました。もしあなたがそうしても、私はそれが大きな問題だとは思わない。 – instinctious

+0

2)これらのユーザーにこのタグのhtmlchunkを表示するなどの特別な条件については、このチャンクをタグに関連付けるhabtm結合テーブルで、作成者のIDを含むuser_idsフィールドを追加するだけですチャンクは作成中に選択されます。次に、単純な論理ステートメントを使って、誰がこのタグでこのチャンクを見るはずかを決定します。 – instinctious

関連する問題