Mam menu, w nim mogą być obrazki, jak też mogą być linki. W przypadku linków, chce żeby aktywny link był innego koloru, w przypadku obrazków, chcę żeby obrazek był inny (wszystkie mogą mieć oczywiście ten sam schemat nazw, np. normalny obrazek: obrazek_1.jpg, obrazek dla aktualnej strony: obrazek_1_.jpg). Jak to najprościej zrobić?
Racja, ale źle się wyraziłem… aktywny = link do aktualnie oglądanej strony.
Ja robię tak:
- W kontrolerze ustawiam zmienną z symbolem aktualnej “sekcji”/“strony”:
# application_controller.rb
before_filter :set_current_area
[code=ruby]# users_controller.rb (…i wszystkie pozostałe)
protected
def set_current_area
@current_area = :users
end[/code]
2. Dzięki temu w widokach masz dostęp do @current_area, które używasz tak:
<a href="<%= users_path %>" class="<%= "current" if @current_area == :users %>">Użytkownicy</a>
- W CSS ustawiasz domyślny wygląd dla “a” i inny dla “a.current”. Obrazki można zrobić przez background-image, albo jak nie to przez jakieś ify.