Por cierto, os pego el código por si a alguien le parece útil:
GENERADOR INTELIGENTE DE CABECERAS DE TABLAS
Recibe un array con las cabeceras que tiene que mostrar (admite
acentos en los nombres, y los quita de la URL), la url base (si es
blank, irá sin enlace), y las opciones
Opciones que admite:
- :default => el texto de columna que se considera predeterminada
- :center => un array indicando el texto de las columnas que van
centradas
- :otros_params => además del orden, las urls incluirán otros
parámetros, que hay que pasarle por aquà en forma de array
def ths(cols, url_base, opciones={})
opciones = {:tipo => ‘text’}.merge opciones
result = “<tr class=“cabecera_roja”>”
cols.each do |col|
txt = col.to_s.humanize
if !url_base.blank?
# Calcula la URL de destino
arr_params = Array.new(opciones[:otros_params])
arr_params << “orden=#{col.to_s.quita_acentos}” if
opciones[:default] != col
url = “#{url_base}#{(’?’ + arr_params.join(’&’)) if
arr_params.length > 0}”
txt = link_to_unless_current(txt, url) # – Esto deberÃa
funcionar… pero nunca le parece el current, aunque lo sea, si la URL
tiene ampersand: /usuarios/admin-list?estado=5&orden=nick.
end
estilo = (opciones[:center] and opciones[:center].include?(col)) ?
’ style=“text-align:center”’ : ‘’
result += “<th#{estilo}>#{txt}”
end
result +=""
end
def current_page?(options)
url_string = CGI.escapeHTML(url_for(options))
request = @controller.request
if url_string =~ /^\w+:///
url_string ==
“#{request.protocol}#{request.host_with_port}#{request.request_uri}”
else
url_string == request.request_uri
end
end
Yo me harÃa mi propia versión de current_page? (por ahora no
sustituirÃa current_page? de Rails) y invocarÃa a “link_to_unless
my_current_page?(url), txt”.
def current_page?(options)
url_string = CGI.escapeHTML(url_for(options))
request = @controller.request
if url_string =~ /^\w+:///
url_string ==
“#{request.protocol}#{request.host_with_port}#{request.request_uri}”
else
url_string == request.request_uri
end
end
Yo me harÃa mi propia versión de current_page? (por ahora no
sustituirÃa current_page? de Rails) y invocarÃa a “link_to_unless
my_current_page?(url), txt”.
Suerte.
OK, muchas gracias!! He probado en la lÃnea de tu idea… y en realidad,
la solución es muy fácil, una vez se sabe el problema: