J'utilise ActiveRecord et Ruby (en dehors de Rails) pour suivre certaines statistiques..Recherche d'une méthode dans ActiveRecord
J'ai ajouté une méthode (total_cost
) à l'un de mes modèles pour faire des calculs en utilisant quelques colonnes du modèle courant ainsi qu'une colonne d'un autre modèle. Je voudrais vraiment pouvoir utiliser certaines des provisions d'ActiveRecord pour les maths (moyennage, sommes) et les anciennes trouvailles en utilisant la méthode que j'ai définie, mais toute tentative pour le faire me met (parfaitement compréhensible) 'Unknown erreur de colonne, par exemple
Article.find(:all, :conditions => ["total_cost > ?", 300])
En conséquence, je fais des choses d'une manière que nous pourrions qualifier de brute-Forcey, juste de trouver tous les articles puis bourrer la total_value de chacun dans un tableau et de faire des sommes et moyennes avec cela.
Est-ce que j'ai d'autres alternatives que ce que je fais? Devrais-je regarder passé ActiveRecord à MySQL lui-même pour calculer les valeurs en question?
Je ne peux pas le faire. 'total_cost' n'est pas une colonne dans la table article. C'est une méthode que j'ai écrite qui somme le 'freelance_cost' et le produit de' effort' et 'Article.editor.hourly_rate'. Quand j'essaie la syntaxe suggérée dans irb, j'obtiens: 'ActiveRecord :: StatementInvalid: Mysql :: Error: colonne inconnue 'total_cost' dans 'liste des champs' – mph