No estoy muy experimentado en Ruby y apenas estoy haciendo funcionar Rails. Les comento el problema que tuve, para ver si me pueden ayudar. Añadí un método en el helper (application_helper.rb) que me muestra menús y los organiza conforme a barras, en realidad funciona bien, pero no logro renderearlo en el sitio como es debido.
Código ruby:
Ver originaldef menu(location = 'header', bars = 1)
menu = Menu.order("`order` ASC").where(
"location = ? AND published = ?", location, true)
_html_menu = chunk_array(menu, bars).collect {|menu|
_menu_content = ''
menu.map {|key, item|
_menu_content = content_tag :li do
menu.map {|item|
concat(content_tag(:a, item.name, :href => item.url)
)
}
end
}
content_tag(:nav, content_tag(:ul, _menu_content), :id => "menu-#{location}")
}
end
def chunk_array(array, pieces = 1)
len = array.length;
mid = (len/pieces)
chunks = []
start = 0
1.upto(pieces) do |i|
last = start+mid
last = last-1 unless len%pieces >= i
chunks << array[start..last] || []
start = last+1
end
chunks
end
En el Layout simplemente tengo esto <% menu "footer", 3 %>. El problema es que no logro transformalo a HTML y me lo renderea como String, intenté usar html_safe, pero no resulta, no sé que estaré haciendo mal. Esto es lo que muestra:
Código HTML:
<nav id="menu-header"><ul><li><a href="/">Portada</a><a href="servicios">Servicios</a><a href="portafolio">Portafolio</a><a href="contacto">Contacto</a></li></ul></nav>
Les agradezco mucho su atención y espero que me puedan quitar este dolor de cabeza