Estoy en Ruby 1.9.2, Rails 3.0.x y uso MySQL DB. Tengo un Modelo de mensajes, donde uno puede publicar mensajes nuevos todos los días.Registros grupales por mes y año en Rails
Tengo una acción de índice en la que quiero mostrar estos mensajes agrupados por mes y año. Esto básicamente se usa para filtrar mensajes.
Mi consulta es el siguiente: -
@active_msgs = Messages.where('expiry > ?', Time.now).order('created_at DESC')
que utiliza la función group_by en Rails, después de referirse a this post
Mi consulta GROUP BY es: -
@msgs_by_month = @active_msgs.all.group_by {|u| u.created_at.month }
estaba devolvió un hash llamado @msgs_by_month. Esto me ayudó a agrupar los mensajes por mes, pero tengo que tener en cuenta el año, para formar una clave única, ya que me ayudaría a diferenciar entre por ejemplo, sep 2011 y Sept 2012.
Mi clave actual solo es de tipo Hash [Month] (ej. Hash [9] => para el mes de septiembre, puedo mostrar todos los valores apropiados). ¿Cómo puedo obtener una clave única de tipo mes, año en el que puedo hacer un bucle fácilmente para mostrar todos los registros agrupados por mes y año de creación?
Gracias
EDITAR: -
supongo una manera de hacer esto, es hacer uso de la API created_at.to_date
, siempre here . Yo sólo pregunto, cómo puedo despojar a cabo el día decreated_at.to_date
para obtener una única mes y año combinación de teclas que podría trabajo con la función group_by.
posible duplicado del [grupo de consultas MySQL a día/mes/año] (http://stackoverflow.com/questions/508791/mysql-query-group-by-day-month- año) – noodl
Nah, no duplicado. el q al que te refieres solo está relacionado con MYSQL donde q este es un rails + mysql .. – Philip