我正在寻找一种以不同方式显示相同@item
的方法。
例如,如果@item.template == template1
- 当我点击“显示”链接时 - 我看到一个布局。
对于template2,我看到了同一项目的另一种布局等。通过布局我的意思是不同的字体,不同的表格设计等。
这样做的最佳方式是什么?
现在我有两个想法:要么有一个特殊的表,其中column1是模板名称,column2是HTML,然后我只使用HTML并插入@item
内容。另一个想法是拥有许多.haml
个文件,并使用render
命令在控制器中做出选择。
但我仍然不确定。也许你可以提出一些建议。
答案 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