2009-08-02 11 views
0

現在、製品を表示する2つのテンプレートがあります。一般的なブラウジングの場合は1つ、検索結果の場合は1つです。これは面倒です、私は多かれ少なかれ同じレイアウトであるために2つのテンプレートを管理する必要があります。冗長ビューテンプレート:1ハイライト検索の場合、1ブラウジングの場合

理由は、検索結果が強調表示されます。私のハイライトテンプレートは大体、次のようになります。

 

for each result 
    <h2> 
    if search has name 
    <em> result.name </em> 
    else 
    result.name 
    end 
    </h2> 

    if search has price 
    <em> result.price </em> 
    else 
    ... 
    end 
... 
end 

私は、製品のページで、このビューを使用するためにダミーの検索変数(複数可)クレアーレしないことを好みます。私は、適切なemでプレパッケージされた "表示"クラスを構築することを検討しましたが、実際には、私の製品ブラウジング・ページがこのクラスに不必要に適合しなければならないので、これはもっと同じです。

2つの異なる目的を果たしている2つの異なるビューがありますが、同じHTMLの2つの異なるファイルを管理しなければならないという主張は、私とうまくあいません。

誰も解決策を持っていますか、それともこの問題を抱えていますか?

答えて

0

これを達成するにはさまざまな方法がありますが、具体的なソリューションについては、使用しているフレームワーク/プラットフォームについて言及してください。

次のようにお答えください。 a)共通のレイアウトと独自のレイアウトを別々のファイルに分割し、必要に応じてそれらをマージします。必要に応じて header.html index.htmlを footer.html search.htmlの

今index.htmlの呼び出しがsearch.htmlの - だからあなたのようなものを持つことができます。非常にスケーラブルなアプローチ。

b)Javascript - JSを使用して検索ページにDOM要素を動的に生成できます。

+0

はい、私は共通のレイアウトを分割していますが、ポイントは検索とビューで使用される2つの製品レイアウトの間に多くの細分性がありますが、強調表示のためにそれらをマージする方法が見つからないようです。 検索キーワードを強調表示するだけでJavaScriptは必要ありません。 私はRailsを使用しています。 –

関連する問題