0
A
回答
2
用來改變菜單的外觀,以反映當前頁面慣常的伎倆是把一個CSS選擇器或類反映在body標籤頁面名稱。
一旦你完成了,你可以爲你想要的每個頁面名稱變體創建不同的樣式。
例如:
<!-- @page_name is 'home' in this example -->
<body class="<%= @page_name %>">
<!-- Lots of html here -->
<div class="nav_links">
<ul id="nav">
<li class="home"><a href="/"><span>Home</span></a></li>
<li class="about_us"><a href="/about"><span>About us</span></a></li>
<li class="store"><a href="/store"><span>Shop</span></a></li>
</ul>
</div>
那麼CSS可以是任何你喜歡的,但這樣的:
body.home div.nav_links ul li.home { /* blah blah */ }
body.about_us div.nav_links ul li.about_us { /* blah blah */ }
這種方法可以確保的擔憂分離效果好:視覺樣式(你的顏色的變化)留在你的樣式表中,並且不在你的代碼中。
0
創建幫助程序以生成菜單的html,並使用controller.controller_name
變量來更改類。
0
我有同樣的問題,我創建輔助方法來設置活動的菜單項。
def active_tab(id)
if id == menu_entry_id
'active'
else
'tab'
end
end
def menu_entry_id
if controller_path.match('/')
controller_path.gsub!('/', '_')
else
controller_path
end
end
實施例菜單
%li{:class => "#{active_tab 'admin_dashboard'}"}= link_to 'Dashboard', admin_dashboard_path
%li{:class => "#{active_tab 'admin_customers'}"}= link_to 'Customers', admin_customers_path
正如你可以在我通過預期的結果從controller路徑的active_tab見(/替換爲_)。 active_tab將它的輸入與controller_path的結果進行比較,並返回激活它或只是選項卡。
我想可能還有其他方法可以做到,但我無法想出更好的東西。
相關問題
- 1. Rails 3中的動態選擇菜單
- 2. rails動態菜單的observe_fields
- 3. Rails:動態選擇菜單
- 4. WPF動態的菜單項
- 5. 動態的菜單項
- 6. 動態菜單項和ActionExpression
- 7. Drupal 6動態菜單項
- 8. PrimeFaces - 動態菜單項
- 9. 更改菜單項動態
- 10. 動態生成菜單項
- 11. Actionscript 3菜單與活動狀態
- 12. 動態菜單與Symfony的3
- 13. CakePHP 3創建動態菜單
- 14. Rails 3.1 - 動態選擇菜單
- 15. Rails中的動態菜單類分配
- 16. Rails中的動態選擇菜單
- 17. 如何在Rails中動態添加選擇菜單選項
- 18. 構建簡單搜索的靜態下拉菜單Rails 3
- 19. PHP動態菜單
- 20. 動態菜單,
- 21. C++ win32動態菜單 - 哪個菜單項被選中
- 22. 菜單項動態排序php mysql
- 23. 動態選項菜單使用invalidateOptionsMenu()
- 24. 從photoshop模板動態菜單項
- 25. rshinydashboard動態子菜單項不渲染
- 26. 如何製作動態選項菜單?
- 27. TMainMenu生成菜單項動態
- 28. TinyMCE中的動態菜單按鈕項
- 29. Drupal中的動態菜單項?
- 30. 更改菜單項的寬度動態