【问题标题】:Many layouts of same page同一页面的许多布局
【发布时间】:2012-12-08 13:07:28
【问题描述】:

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

最好的方法是什么?

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

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

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

    render :layout => @item.template
    

    【讨论】:

    • 在哪里存储每个布局的图像更好?例如文件夹 1 用于模板 1,文件夹 2 用于模板 2。在assets/images/layouts/templatename下?
    • 可以。我想这真的取决于你。
    【解决方案2】:

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

    例如

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

    【讨论】:

    • 是的,这很好,但我认为它没有几个视图那么灵活。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多