que je veux quelque chose comme ceci dans Rails:Comment puis-je calculer une somme conditionnelle dans mon modèle?
class Proposal < ActiveRecord::Base
def interest_level
self.yes_votes.count - self.no_votes.count
end
private
def yes_votes
self.votes.where(:vote => true)
end
def no_votes
self.votes.where(:vote => false)
end
end
- Qu'ai-je essentiellement fait mal dans le code ci-dessus? (Je me rends compte qu'il est probablement terrible de nombreuses façons.)
- Quelle est la bonne façon de le faire à partir d'un point de vue Rails?
- Quelles considérations dois-je garder à l'esprit d'un point de vue de la base de données? (Par exemple, même si le code comme ci-dessus était possible, je suppose que ce serait excessif du côté DB. Mais, naturellement, je ne suis pas vraiment sûr.)
Etes-vous en train de demander spécifiquement Rails 3 (j'ai choisi Cue de '.where')? – Swanand