Forum: Rails-ES Buscar por rango de fechas

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
7680c5dd50909fefd9ac6c0f1cb4bc8a?d=identicon&s=25 Josec (Guest)
on 2007-06-06 13:57
Hola a todos,
tengo una pequeña Web realizada con Rails en la que inserto noticias. El
problema que tengo es que quiero realizar búsquedas por rango de fechas,
pero no obtengo lo que busco:

- Las noticias tienes el campo created_at, y se guardan con este formato
2007-06-06 13:10:13
- La función de búsqueda es:

@articles = Article.find(:all,
                         :conditions => ['created_at >= ? AND created_at
< ?',   params[:search][:date_start], params[:search][:date_end]]

Con esto me lanza la búsqueda pero me devuelve todas las noticias y no
las que pertenecen al rango de fechas.

¿Alguna idea por favor?
Ffd012d72e7f61639724878825ed25a3?d=identicon&s=25 Damian Janowski (djanowski)
on 2007-06-06 15:54
(Received via mailing list)
On 6/6/07, Josec <ruby-forum-incoming@andreas-s.net> wrote:
>                          :conditions => ['created_at >= ? AND created_at
> < ?',   params[:search][:date_start], params[:search][:date_end]]
>
> Con esto me lanza la búsqueda pero me devuelve todas las noticias y no
> las que pertenecen al rango de fechas.

¿Podrías enviarnos el valor de params[:search]?

Quizás haciendo un:
raise params[:search].inspect

Además, la búsqueda la podrías escribir también así, creo:

date_start, date_end = params[:search][:date_start],
params[:search][:date_end]
Article.find(:all, :conditions => {:created_at => date_start..date_end})
532c4f2c1ed5317cf578ce1d3a14cd4c?d=identicon&s=25 Raúl Naveiras (Guest)
on 2007-06-06 18:18
(Received via mailing list)
Hola,

Creo entender que lo que quieres hacer es buscar todas las noticas
que están comprendidas entre dos fechas

@articles = Article.find(:all,
      :conditions => [ " created_at between ? and ? ",
            params[:search][:date_start],
            params[:search][:date_end] ])

Asegurate que :date_start y :date_end tengas el formato correcto de
fechas. Puedes comprobar en development.log la consulta
que esta ejecutando para comprobar que todo este bien.

Un saludo.

El 06/06/2007, a las 15:52, Damian Janowski
escribió:
>> 2007-06-06 13:10:13
>
> date_start..date_end})
> _______________________________________________
> Ror-es mailing list
> Ror-es@lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es

--
raúl naveiras <rnaveiras@gmail.com>
/dev/null the ultimate in secure storage.
This topic is locked and can not be replied to.