0

スリムファイルに次の if else ステートメントがあります

- if x == 0
 div Some cool title here
- else
 div A different cool title goes here

これは問題ありませんが、div 内にいくつかの子タグが必要です

- if x == 0
 div Some cool title here
   div Ditto
- else
 div A different cool title goes here
   div Ditto

これは DRY に反します。子タグを2回見る必要がないように、このコードを減らすことができる方法はありますか? 私がこれまでに行った試みの結果、子タグが 1 つの div に存在し、他の div には存在しないようになりました。これは、私が望むものではありません。

4

2 に答える 2

3

ビューでコードを複製するときは、パーシャルを使用してその複製されたコードを保持し、表示したい場所にパーシャルをレンダリングする必要があります。あなたの単純化されたコードはあなたの意図を示すためのものであることは知っていますが、それがより現実的であれば、さらに提案を提供できます.

そのロジックをインライン化することもできます。

div
  = x == 0 ? 'Some Cool Title' : 'Some Other Title'
  div Ditto

それよりも、Draper のような gem を使用してプレゼンター オブジェクトを作成するなど、そのロジックをより適切な場所に移動することをお勧めします。

div
  = @my_presenter_object.title
  div ditto
于 2013-06-06T18:24:48.403 に答える