代码之家  ›  专栏  ›  技术社区  ›  stephenmurdoch

从分部调用Rails应用程序的主“yield”

  •  0
  • stephenmurdoch  · 技术社区  · 15 年前

    我的问题很简单。如果答案很明显,我会先问,然后我会解释我的意思,如果答案不明显。

    从一个部分而不是直接从layout.html.haml文件进行主要的“yield”调用是否可以?这样做会导致任何性能损失。


    说明…

    我有一个名为application.html.haml的布局文件。

    我希望我的主要内容占据整个页面的宽度,除非有一个侧边栏为该页面提供。

    如果有侧边栏,那么我希望主要内容占据66%的页面宽度,并且侧边栏将占用剩余的空间。

    我的布局中有以下内容:

    #content
      - if show_sidebar?    
        #main
          = yield
        #sidebar
          = yield(:sidebar)
      -else
        = yield
    

    Content Div为100%页面宽度。如果没有侧边栏,则“yield”结果将进入此分区。如果有侧边栏,则主yield将进入名为main的分区,即66%的页面宽度。

    太好了,这个很好用。

    现在,为了保持主视图整洁,我对代码进行了一点重构,使其看起来像这样:

    #content
      - if show_sidebar?
        - render :partial => 'main_with_sidebar'
      -else
        = yield
    

    然后在部分 _main_with_sidebar.html.haml 我有这个:

        #main
          = yield
        #sidebar
          = yield(:sidebar)
    

    所以一切都是一样的,除了这样一个事实,即当有一个边栏存在时,主要的收益率是从一个部分调用的。

    所以我的问题是,这是否被认为是最佳实践。或者我应该坚持使用稍微有点凌乱的application.html.haml文件来去掉部分文件吗?这似乎不会造成任何问题,但我想知道在我做得太过火之前我是否做错了什么。

    是的,你们有些人可能觉得这很愚蠢,但我是设计师,而不是开发人员,这类事情对我来说是新的……

    1 回复  |  直到 10 年前
        1
  •  1
  •   knoopx    15 年前

    我只需为“侧边栏布局”创建一个新布局

    views/layouts/application.html.haml
    views/layouts/sidebar.html.haml