1

我正在寻找一种以@item不同方式展示相同内容的方法。例如,如果@item.template == template1- 当我点击“显示”链接时 - 我看到了一种布局。对于模板2,我看到了相同项目的另一种布局等。布局是指不同的字体、不同的表格设计等。

做这个的最好方式是什么?

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

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

4

2 回答 2

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 回答
1

I would go with many layout files as it's easier to maintain, version and you can use partials and all that stuff. So something like this in the controller action:

render :layout => @item.template
于 2012-12-08T15:48:27.900 回答