1

同じものをさまざまな方法で表示する方法を探してい@itemます。たとえば@item.template == template1、「表示」リンクをクリックすると、1 つのレイアウトが表示されます。template2の場合、同じアイテムの別のレイアウトなどが表示されます。レイアウトとは、異なるフォント、異なるテーブルデザインなどを意味します.

これを行う最善の方法は何ですか?

現在、私には 2 つのアイデアがあります。column1 がテンプレート名で column2 が HTML である特別なテーブルを作成し、HTML を取得して@itemコンテンツを挿入するだけです。別のアイデアは、多くのファイルを持ち、コマンド.hamlを使用してコントローラーで選択することです。render

しかし、私はまだ確信が持てません。多分あなたは何かを提案することができます。

4

2 に答える 2

1

保守やバージョン管理が簡単で、パーシャルなどを使用できるので、多くのレイアウト ファイルを使用します。したがって、コントローラーアクションでは次のようになります。

render :layout => @item.template
于 2012-12-08T15:48:27.900 に答える
1

デザインを変更するためにラッピング要素にクラスを追加できますか?

例えば

<div class="item layout-<%= @item.template %>">
  <h2><%= @item.title %></h2>

  <table>
    <!-- table data here -->
  </table>
</div>

次に、.cssファイルに

.item.layout-template1 {
  font-family: Georgia, serif;
}

.item.layout-template2 {
  font-family: Arial, sans-serif;
}
于 2012-12-08T13:37:41.347 に答える