Perdón, le dà a enviar. Éste es el correo bueno:
Creo que no me has entendido. Te decÃa que puedes limitar a 5 en el
controlador y pasarle un parámetro que sea mostrar_mas = true una vez
que
pinches en el botón de ver más.
Esa era una opción. La otra es la que te he puesto. Le pasas toda la
consulta a la página y la muestras como te he dicho.
Si lo has limitado, el botón no va a funcionar porque javascript no
llama al
servidor en esa funcioncilla que te he pasado.
Entiendo que la logica de lo que propones es esta: si el contador es > 4
usa la clase ocultar para el resto de los checkbox correcto? Con el
javascript le quitas la clase ocultar y se ven todos… No obstante y en
caso de q funcionara el boton de “ver mas” este se sigue quedando al final
de la lista.
Eso hace la lógica del código que te pasé. Luego al pulsar el botón ver
todos, se mostrarÃan todos y se ocultarÃa el botón con
this.style.display=‘none’. Para asegurarte de que se esconda el botón
haz:
Se me ocurre esta solucion un poco chapuzera (no soy programador)
q te parece?
Se puede hacer mucho más fácil, que es la manera que te decÃa del lado
del
servidor.
Que el método sea:
def el_metodo
#Si no se le pasa ningún parámetro(primera vez que accedes al
método),
entrará en el “else”, si se le pasa, pondrá una variable en el request
para
controlar que se muestre o no el enlace “ver todos”
if params[:mostrar_mas]
@se_muestra_el_enlace = false
else
limite = 5
@se_muestra_el_enlace = true
end
@characteristics = Characteristic.find(:all, :order => “name”, :limit
=>
limite )
render :partial => ‘mi_metodo’
end
Y en la vista, guárdala como _mi_metodo.rhtml
<% for characteristic in @characteristics %>
<% end %>
<% end %>
<%if se_muestra_el_enlace%>
<%=link_to_remote “ver todos”, :url => { :action => “el_metodo”,
:mostrar_mas => true} %>
<%end%>
A ver si te vale esto. Un saludo
Ese link_to_remote crea una función ajax que llamará a tu método en el
servidor, pero esta vez pasándole un parámetro: mostrar_mas.