Buenas, lista!
Tengo una consulta del estilo
Post.find(:all, :conditions => { }, :limit => 10)
En la vista lo imprimo y luego quiero poner un enlace que me lleve a ver
más
resultados si estos existiesen pero claro ¿cual es la forma más
eficiente de
hacer esto?
PodrÃa hacer la misma consulta con un limit mayor y comprobar el tamaño.
Vamos es la cutre-solución que estoy usando ahora pero no me convence
nada.
¿Qué se os ocurre a vosotros?
hola,
Post.find(:all, :conditions => { }, :limit => 10)
Podría hacer la misma consulta con un limit mayor y comprobar el
tamaño. Vamos es la cutre-solución que estoy usando ahora pero no me
convence nada.
Post.count(:conditions => { })
saludos,
–
javier ramírez
…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez
Gracias, pero seguimos teniendo que hacer otra consulta a la db 
De todas formas también he sido zoquete al no cambiar el find por el
count.
El día 19 de septiembre de 2008 11:06, Ceritium [email protected]
escribió:> Buenas, lista!
Tengo una consulta del estilo
Post.find(:all, :conditions => { }, :limit => 10)
En la vista lo imprimo y luego quiero poner un enlace que me lleve a ver más
resultados si estos existiesen pero claro ¿cual es la forma más eficiente de
hacer esto?
Como idea loca:
resultados = Post.find(:all, :conditions => { }, :limit => 11)
hay_mas = resultados.size > 10
resultados = resultados[0…9]
resultados = %w(1 2 3 4 5 6 7 8 9 10 11)
=> [“1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “11”]
hay_mas = resultados.size > 10
=> true
resultados = resultados[0…9]
=> [“1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”]

f.
El día 19 de septiembre de 2008 11:35, Fernando G.
[email protected]
escribió:>> En la vista lo imprimo y luego quiero poner un enlace que me lleve a ver más
resultados si estos existiesen pero claro ¿cual es la forma más eficiente de
hacer esto?
Como idea loca:
resultados = Post.find(:all, :conditions => { }, :limit => 11)
+1, pensé justo lo mismo 
Hola
Gracias, pero seguimos teniendo que hacer otra consulta a la db 
si… te da la ventaja adicional de que puedes mostrar el total de
registros y poner links para ir a página XXX. Así el usuario no sabe
sólo que hay más, sino cuántos hay. Es la solución que usan los
paginadores normalmente.
saludos,
j
–
javier ramírez
…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez
Ahà tiene razón javier pero no es eso lo que me interesa ahora.
2008/9/19 Ceritium [email protected]
Buenas, lista!
Tengo una consulta del estilo
Post.find(:all, :conditions => { }, :limit => 10)
En la vista lo imprimo y luego quiero poner un enlace que me lleve a ver
más resultados si estos existiesen pero claro ¿cual es la forma más
eficiente de hacer esto?
A mà esto me suena a paginar, de 10 en 10, no? Has probado con
will_paginate?
2008/9/19 javier ramirez [email protected]
Post.count(:conditions => { })
O simplemente Post.count
Saludos
bueno gracias a todos.
No Jaime, la idea no es paginar, es simplemente una vista donde se
muestran
10 resultados, si hay mas se muestra un enlace donde te llava a otra
vista
en donde si se pagina.
Desde luego lo que a todos se nos ocurre es lo de hacer un Model.count
adicional, pero yo simplemente preguntaba por si tenÃais una forma más
eficiente de hacer eso, vamos de no hacer una consulta extra.
On Sun, Sep 21, 2008 at 4:52 PM, Ceritium [email protected] wrote:
bueno gracias a todos.
No Jaime, la idea no es paginar, es simplemente una vista donde se muestran
10 resultados, si hay mas se muestra un enlace donde te llava a otra vista
en donde si se pagina.
Ya, si yo más bien te decÃa no de paginar, sino usar will_paginate para
saber si hay varias páginas. Pero es más eficiente lo que te propongo
después:
Desde luego lo que a todos se nos ocurre es lo de hacer un Model.count
adicional, pero yo simplemente preguntaba por si tenÃais una forma más
eficiente de hacer eso, vamos de no hacer una consulta extra.
Yo creo que lo más eficiente es lo que ya te han comentado en este hilo,
no
hace falta hacer un count… hazlo con un :limit => 11 y en la vista
compruebas el tamaño. O sea:
En el controlador…
@posts = Post.find(:all, :conditions => { }, :limit => 11)
En la vista…
… pintas el bucle de @posts[0…9]
y el enlace a ver más si @posts.size > 10
<%= link_to ‘ver más’, ‘/posts/ver_mas’ if @posts.size > 10 %>
Creo que de cara a base de datos es lo más eficiente, no? Sólo te hace
una
consulta. Me parece que es lo que te comentaba inicialmente Fernando
Guillén.
El Sunday 21 September 2008 22:14:05 Jaime I. escribió:
Desde luego lo que a todos se nos ocurre es lo de hacer un Model.count
En la vista…
… pintas el bucle de @posts[0…9]
y el enlace a ver más si @posts.size > 10
<%= link_to ‘ver más’, ‘/posts/ver_mas’ if @posts.size > 10 %>
Creo que de cara a base de datos es lo más eficiente, no? Sólo te hace una
consulta. Me parece que es lo que te comentaba inicialmente Fernando
Guillén.
Si la base de datos cachea, y se pagina tambien de 10 en 10, es posible
que
sea mas rapido hacer las dos consultas, porque esa consulta puede estar
ya
cacheada para mostrar la primera pagina y la del count para saber las
paginas
totales. Y al hacer menos consultas diferentes tienes menos que cachear
y mas
facil que la consulta no se expulse de la cache.
–
Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
T) 902 021 404 F) 976 52 98 07 E) [email protected]
On Sun, Sep 21, 2008 at 3:23 AM, Marcelo López
[email protected]wrote:
unsuscribe
prueba con unsubscribe (con b).
Un Saludo