添加其他类以呈现部分

时间:2011-09-03 03:20:08

标签: html ruby-on-rails haml renderpartial

我正在寻找有关偏爱的一些帮助。我在我的网站上创建了一个部分菜单,但我想知道是否可以为部分添加一个额外的类。更具体地说,我希望为li菜单对象分配一个额外的类,以便我可以指示用户在该特定页面上。

这是我的部分代码(我正在使用HAML)。它名为_menu.html.haml,位于“共享”文件夹中。

.three.columns
  %ul#nav
    %li
      %a{:href => "../pages/about"} About
    %li
      %a{:href => "../pages/careers"} Careers
    %li
      %a{:href => "../pages/contact"} Contact Us
    %li

我的carrers.html.haml页面的代码如下:

 code...
 = render :partial => 'shared/menu'
 more code...

我想在部分中的职业链接中添加.active_page课程。此类更改文本后面的背景图像,以指示用户位于特定页面上。更具体地说,我希望它看起来像这样:

%li.active_page
   %a{:href => "../pages/careers"} Careers

是否可以使用partials来做到这一点?

2 个答案:

答案 0 :(得分:0)

您使用部分内容并不会改变您使用HAML,ERB或类似内容的方式。如果您想添加一个类,那么只需将.active_page添加到HTML标记即可。如果在HAML中做的是有效的事情,那么你可以在视图中的任何地方进行,即使它恰好是部分的。

部分只是模块化/可重用的视图。就像你可以在实例方法和类方法中使用代码一样,因为它们只是代码,所以你可以在部分和“常规”视图中使用相同的HAML代码。

答案 1 :(得分:0)

有很多方法可以做到这一点。我不会使用偏见,我会这样做:

%li{:class => @active_page=="careers" ? "active_page" : ""}
  %a{:href => "../pages/careers"} Careers

假设您的控制器已创建@active_page。