1
Je suis en train de construire une requête qui effectue les opérations suivantes:Rails - requête pour regrouper résume
- L'objectif: montrer le nombre total de visites à tous les produits de la société chaque jour ce mois-ci.
- Premièrement: Nous trouvons tous les utilisateurs qui appartiennent à @ company.product (chaque utilisateur a un product_id).
- Additionnez tous les comptes de visites parmi ces utilisateurs, en les regroupant par jour, pour chacun des 30 derniers jours.
- Pour présenter ces sommes visit_count sous la forme d'une chaîne de 30 valeurs séparées par des virgules (23,26,21,63,21,42 etc.) dans la vue.
Jusqu'à présent (aucune somme encore):
#controller
@visits = User.group("date(created_at)").having("product_id IN (?) AND created_at > ?", @company.products.select("id"), 1.month.ago).order("created_at").select("visit_count")
# this simpler version causes error: undefined method 'empty?' for 2010-10-03 17:55:57 UTC:Time
@visits = User.group("created_at").having("date(created_at) > (?)", 1.month.ago)
#view:
<%= @visits.map(&:visit_count).join(",")
La requête ci-dessus soulève une erreur (3 arguments pour 2), mais j'ai essayé beaucoup de combinaisons semblables à cela et je continue à avoir des erreurs. Je ne suis pas trop expérimenté avec ActiveRecord. Comment écrirait-on cette requête? Merci beaucoup.
Cette offre pas pour vous? Qu'est-ce que cette déclaration a renvoyé? –