Le groupe enregistre en deux mois et l'année dans les Rails
Je suis sur Ruby 1.9.2, Rails 3.0.x et j'utilise MySQL DB. J'ai un Messages d'un Modèle, d'où l'on peut poster de nouveaux messages chaque jour.
J'ai un indice d'action où je veux afficher ces messages regroupés par mois et l'année. Il s'agit essentiellement utilisé pour filtrer les messages.
Ma requête ressemble à ceci:-
@active_msgs = Messages.where('expiry > ?', Time.now).order('created_at DESC')
J'ai utilisé le group_by fonction dans les Rails, après avoir fait référence à ce post
Mon Groupe En question est:-
@msgs_by_month = @active_msgs.all.group_by {|u| u.created_at.month }
J'étais retourné une valeur de Hachage appelé @msgs_by_month. Cela m'a aidé groupe de messages par mois, mais j'ai besoin de prendre en compte l'année, pour former une clé unique , car il me permettrait de différencier, par exemple, en Septembre 2011 et Septembre 2012.
Ma clé est de type Hash[Mois] ( par ex. de Hachage[9] => pour le mois de septembre, je peux afficher toutes les valeurs ). Comment puis-je obtenir une clé unique de type le mois, l'année qui je peux facilement effectue une boucle pour afficher tous les enregistrements regroupés par Mois et l'Année de création.
Merci
MODIFIER:-
Je devine une façon de faire cela est de faire usage de la created_at.to_date
api fournie ici
. Je me demande seulement, comment je peux dépouiller le jour de created_at.to_date
pour obtenir un unique le mois et l'année la combinaison de touches qui pourrait travail avec le group_by fonction.
Nah, pas doublon. le q vous faites allusion, n'est MYSQL, où ce q est un rails + mysql..
OriginalL'auteur boddhisattva | 2012-09-21
Vous devez vous connecter pour publier un commentaire.
En SQL:
Dans Les Rails:
OriginalL'auteur noodl
Utilisation En Groupe.
Il prend en charge les fuseaux horaires, donc si jamais vous avez besoin d' - le code facilement évoluer.
https://github.com/ankane/groupdate
OriginalL'auteur Pavan Katepalli
Cela va fonctionner, cependant mois sera renvoyé dans l'index.
Ex. Nov référer à 11
OriginalL'auteur Cody Elhard
OriginalL'auteur Feuda