同一页面的许多布局

时间:2012-12-08 13:07:28

标签: ruby-on-rails

我正在寻找一种以不同方式显示相同@item的方法。 例如,如果@item.template == template1 - 当我点击“显示”链接时 - 我看到一个布局。 对于template2,我看到了同一项目的另一种布局等。通过布局我的意思是不同的字体,不同的表格设计等。

这样做的最佳方式是什么?

现在我有两个想法:要么有一个特殊的表,其中column1是模板名称,column2是HTML,然后我只使用HTML并插入@item内容。另一个想法是拥有许多.haml个文件,并使用render命令在控制器中做出选择。

但我仍然不确定。也许你可以提出一些建议。

2 个答案:

答案 0 :(得分:1)

您可以在包装元素中添加一个类来修改设计吗?

E.g。

<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;
}

答案 1 :(得分:1)

我会使用许多布局文件,因为它更容易维护,版本,你可以使用部分和所有这些东西。在控制器动作中是这样的:

render :layout => @item.template