从部分调用rails应用程序的主要“收益”

从部分调用rails应用程序的主要“收益”

问题描述:

我的问题非常简单。如果答案是显而易见的,我会先问它,然后我会解释我的意思,以防情况不明显。从部分调用rails应用程序的主要“收益”

从部分而不是直接从layout.html.haml文件中调用主'yield'调用是否被认为是可行的?这样做是否会导致任何类型的性能损失。


解释...

我呼吁application.html.haml一个布局文件。

我希望我的主要内容占用整个页面宽度,除非该页面存在边栏。

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

我在我的布局如下:

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

内容DIV是100%的页面宽度。如果没有侧边栏,那么'收益'结果会进入这个div。如果存在侧边栏,那么主要收益会进入称为#main的div,该页面宽度为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文件并摆脱部分?它似乎没有造成任何问题,但我想知道如果我在做了太多事情之前做错了什么。

是它看起来愚蠢的一些你们,但我是一个设计师,而不是一个开发和这样的事情是新的我....

我会简单地创建一个新的布局“带侧边栏的布局”

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

谢谢。这正是我以前的做法,说实话,我认为这就是我将不得不继续这样做的原因。我认为这很容易,因为我正在与其他设计师合作,如果这样做可能会更适合他们。 谢谢。不能相信我花了多长时间仔细考虑过这个问题! – stephenmurdoch 2009-12-17 13:08:34