Rails 大家一般是怎么处理那些跟 layout 有点不同的页面?

zernel · 2012年07月13日 · 最后由 leomao10 回复于 2012年07月13日 · 3104 次阅读

例如 layout 里面是在 body 下直接 render 菜单的,但若想在主页的菜单上面还要显示一张图片,我只想到几种做法:

  • 最简单的当然是通过条件判断,不过我觉得单纯为了这一个页面而导致每个页面都做判断不太好;
  • 麻烦点的话就是在每个 template 中分别 render 主菜单,一想到要写多这么多行一样的代码我就写不下手了;
  • 用两个 layout 的话也可以解决;
  • 用 js 动态载入;
  • 用 css 有选择地修改 display 属性;

我能想到的就以上的做法,可我觉得都不太好,不知道大家平时是怎么处理的?谢谢指教:)

解决方法

在 layout 中 render 菜单前加上 <%= yield :image %> 在 主页的 template 中加上

<% content_for :image do%> <% end -%>

content_for 貌似也能比较好地处理这个问题,测试 ing

yield content_for

#2 楼 @Rei 嗯,刚发完帖才想到这种做法,这种做法能满足我代码洁癖并华丽丽地解决这个问题,谢了:)

需要 登录 后方可回复, 如果你还没有账号请 注册新账号