Hola, tengo algunas duda de con el filtrado de datos por fecha y año
en mi modelo tengo un campo datetime que guarda la fecha , y estoy
pasando
por get el mes y el año para mostrar los resultados, la url es de esta
forma:
home/blog/archivos/10/2005
pero no se que tengo que hacer para manejar el campo datetime para
separalo
en dos campos uno que sea :mes y otro que sea :año y luego hacer el
find y
poner en :conditions=>{:año=>params[‘ano’],:mes=>params[mes`]},
en el sql nomal se como hacerlo serÃa algo asi :
…
YEAR(post_cat.fecha) = %s AND MONTH(post_cat.fecha)=%s
…
pero no me queda claro como hacerlo al estilo rails, que me remcomiendan
en
este caso ¿utilizar un find_by_sql? ¿o trabajar con campos virtuales ,
attr_accessor o algo asi?
en mi modelo tengo un campo datetime que guarda la fecha
campo datetime del modelo es igual a objeto de la clase DateTime en ruby
pero no me queda claro como hacerlo al estilo rails, que me
remcomiendan en este caso
Pues en este caso concreto, como en tantos otros, te recomiendo ir a la
documentación, que es donde yo siempre busco primero por aquello de que
la respuesta es inmediata además de fiable
Como recomendación general, te diría que si ya llevas un tiempo con
Rails, pases de la primera fase de conocer sólo lo que te explican en
los libros de puro Rails y te mires también algo del lenguaje que lo
hace posible. Verás como después de aprender Ruby le ves muchas más
ventajas a Rails que antes (al menos ésa fue mi experiencia)
por si he entendido mal la pregunta de antes y tu problema no es separar
en campos un DateTime sino como pasarlo en sql… en la doc también
puedes encontrar que el parámetro conditions de find acepta varias
cosas, una de ellas es una cadena de sql para pasarla como condición al
where. Si el problema es como separar la fecha de sql en campos, ahí le
puedes pasar tu sql directamente sin necesidad de recurrir a un
find_by_sql.