2011-09-03 18 views
0

我在尋找一些關於偏色的幫助。我在我的網站上創建了一個菜單部分,但我想知道是否可以將其他類添加到部分。更具體地說,我期待爲li菜單對象分配一個額外的類,以便我可以指出用戶在該特定頁面上。添加額外的類來呈現部分

這是我的部分代碼(我使用HAML)。它名爲_menu.html.haml,位於'shared'文件夾中。

.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做到這一點?

回答

0

事實上,你使用的部分不會改變你如何使用HAML或ERB或類似的東西。如果您想添加課程,那麼只需將.active_page添加到HTML代碼即可。如果在HAML中這是一個有效的事情,那麼即使它恰好是局部的,你也可以在視圖中的任何位置執行它。

部分只是模塊化/可重用的視圖。就像你可以在實例方法內部和類方法內部使用代碼一樣,因爲它們只是代碼,所以你可以在部分和「常規」視圖中使用相同的HAML代碼。

0

有很多方法可以做到這一點。我不會使用partials,我會這麼做:

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

假設@active_page已由您的控制器創建。

+0

John謝謝你的幫助。我很新的軌道...我添加active_page頁面助手或頁面控制器?也可能是這樣的:def active_page(c) controller.action_name == c end –