Rescue true. Para los caballeros que siempre dicen nil! 2009-04-01T11:11:02+00:00
This is an Atom syndication feed. It is intended to be viewed in a news aggregator or syndicated to another site. Please visit the Atom Project for more information.
Tecnología the-shaker: that blog/flickr/multimedia-aggregator kind of thing Rescue true. /imag/ed/hombre65x65.png http://x-or.lacoctelera.net/post/2009/04/01/will-paginate-ir-la-ultima-pagina-con-elementos-out-of Will Paginate: Ir a la ultima página con elementos (out of bounds?) 2009-04-01T11:11:02+00:00 2009-04-01T11:11:02+00:00 <p>En mis últimos proyectos uso el plugin (ahora gema) '<a href="http://wiki.github.com/mislav/will_paginate">will paginate</a>' para la paginación de listados. Uno de los problemas que nos encontramos es cuando el listado tiene, por ejemplo, 4 paginas y el usuario intenta ir a la página 5. Esto ocurre muy amenudo cuando se borra el último elemento de una página.</p> <p>El propio will_paginate nos ofrece una función para este tipo de casos y su aplicación es bastante trivial.</p> <pre> <code> por_pagina = 10 @noticias = @noticias.paginate :page =&gt; params[:page], :per_page =&gt; por_pagina @noticias = @noticias.paginate :page =&gt; @noticias.page_count, :per_page =&gt; por_pagina if @noticias.out_of_bounds? and @noticias.total_entries &gt; 0 </code> </pre> <p>La idea es bastante sencilla. Paginamos por primera vez normal, y, en caso de que la página que nos devuelve el <em>paginate</em> este fuera de los limites (<em>out_of_bounds</em> ) y exista algun elemento (<em>total_entries &gt; 0</em>) volvemos a paginar usando como parametro de página la ultima página con entradas (<em>page_count</em>).</p> <p>Espero que haya quedado claro! Un saludo.</p> Rescue true. /imag/ed/hombre65x65.png http://x-or.lacoctelera.net/post/2009/03/31/rails-mysql-buscar-con-y-sin-tildes Rails + MySQL: Buscador con y sin tildes 2009-03-31T10:41:55+00:00 2009-03-31T13:06:17+00:00 <p>Para empezar metidos en harina el primer post sobre un tema controvertido. Cada cual tiene su manera de hacerlo y para no ser menos que el resto yo tengo la mia. No se si será la mas correcta o si habra mejores formas, pero esta es rapida, barata y funciona.</p> <pre><code>class Usuario #Busca usuarios por nombre y apellidos def self.buscar(texto) Usuario.find(:all, :conditions =&gt; ["concat(nombre,\" \",apellidos) REGEXP '?'", Usuario.expresion_regular_para_sql(texto)]) end #Sustituye las vocales y vocales acentuada por la cadenda "[vocal,vocal_acentuada]" def self.expresion_regular_para_sql texto #Creamos un array con las vocales y su acentuacion textos_a_sustituir = %w(aá eé ií oó uú) textos_a_sustituir.each do |cad| #Con el gsub y la expresion regular cambiamos por la expresion regular de sql: ej para aá -&gt; texto.downcase.gsub!(/[aá]/,"[aá]") texto.gsub!(/[#{cad}]/,"[#{cad}]") end end end</code></pre> <p>Lo único que hago es crear la expresion regular sql que me permite buscar con y sin tildes, esto es convertir "Jorge" en "J[oó]rg[eé]". El concat en las conditions permite hacer busquedas del tipo "Jorge Fernández" cuando el nombre y los apellidos estan en campos separados.</p> <p>Espero que a vosotros tambien os funcione! Por cierto el código esta escrito de memoria y sin ejecutarlo, así que quizá teng algún errorcillo! Si es así hacedmelo saber por favor!</p>