从部分调用rails app的主要'yield'

时间:2009-12-17 11:57:26

标签: ruby-on-rails partials

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

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


...说明

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

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

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

我的布局中有以下内容:

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

内容div的页面宽度为100%。如果没有侧边栏,则'yield'结果将进入此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文件并摆脱部分?它似乎没有引起任何问题,但我想知道在我走得太远之前我做错了什么。

是的,对你们中的一些人来说,这似乎是愚蠢的,但我是一名设计师,而不是一名开发者,这种事情对我来说是个新事物....

1 个答案:

答案 0 :(得分:1)

我只是为“带边栏的布局”

创建一个新布局
views/layouts/application.html.haml
views/layouts/sidebar.html.haml