Menú de navegación en rieles

Tengo mi menú de navegación en application.html y el menú tiene class = "active". Eso depende de la página en la que se encuentre el usuario. ¿Cómo puedo averiguar dinámicamente qué elemento debe tener la clase?

Así es como es mi barra de menú superior:

<ul>
   <li class="active"><a href="#">Home</a></li>
   <li><a href="#">Page1</a></li>
   <li><a href="#">Page2</a></li>
   <li><a href="#">Page3</a></li>
</ul>

preguntado el 27 de agosto de 11 a las 21:08

Quizás este TAN pregunta te ayudará, o echa un vistazo a la Pestañas sobre rieles joya. -

3 Respuestas

Una forma sería tener una variable de instancia @active_page en los controladores, que se configura en cada acción. También puede hacer esto ya con un título (¿@ título tal vez?), Así que tal vez podría usarlo en su lugar. Luego en la plantilla:

<li class="<%= "active" if @active_page == "Home" %>">...</li>

Respondido 28 ago 11, 02:08

Sería mejor con @controller.controller_name y @controller.action_name ¿No? - hachpai

@hachpai - ¡esa es otra forma de hacerlo! - brentvatne

La más fácil (y posiblemente la más rudimentaria) es usar current_page?. Usted puede leer en los documentos para ver cómo funciona. Como He experimentado, no siempre produce lo que quieres.

También hay una joya, navigásmico, que funciona bastante bien si sus necesidades se vuelven bastante complejas.

Hay varias formas de lograr lo que está tratando de hacer. Poner a prueba o probar current_page? primero y si te encuentras arrancándote el pelo, pasa a algo como navigasmic.

contestado el 23 de mayo de 17 a las 14:05

Siempre he estado viendo esa página actual en mi inteligencia ide pero nunca supe realmente que era ... Uchenna

puedes crear un ayudante siple como este

  def  nav_link(name, url)
    selected = url.all? { |key, value| params[key] == value }
    link_to(name, url, :class => (selected ? "youarehere tabs" : "tabs"))
  end

<div id="tabs" class="tabs2">
  <%= nav_link %>
  <%= nav_link %>
  <%= nav_linl  %>
</div>

luego agregue los estilos CSS necesarios

Respondido 28 ago 11, 03:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.